HTTP是一种无状态的协议,,由客户端请求和服务端响应组成。HTTP实际上是比较特殊的网络协议。

大多数基于因特网的网络连接通常包含长连接和基于TCP套接字的双向消息交换。让不信任的客户端脚本访问底层的TCP套接字是不安全的,但是WebSocket API定义了一种安全方案:它允许客户端代码在客户端和支持WebSocket协议的服务器端创建双向的套接字类型的连接。这让某些网络操作会变得更加简单。

WebSocket API通过WebSocket()构造函数创建一个套接字:

var socket = new WebSocket("ws://ws.example.com:1234/resource");

该构造函数的参数是一个URL,使用ws://协议或wss://协议。

创建了套接字之后,通常需要在上面注册一个事件处理程序:

socket.onopen = function(e) {/*套接字已经连接*/};
socket.onclose = function(e) {/*套接字已经关闭*/};
socket.onerror = function(e) {/*出错了*/};
socket.onmessage = function(e) {
var message = e.data;/*服务器发送一条消息*/
};

为了通过套接字发送数据给服务器,可以调用套接字的send()方法:

socket.send("Hello,server!");

当完成和服务器的通信后,可以通过close()方法来关闭WebSocket。

WebSocket完全是双向的,并且一旦建立了WebSocket连接,客户端和服务端都可以在任何时候互相传递消息,与此同时,这种通信机制采用的不是请求和响应的形式。每个基于WebSocket的服务都要定义自己的“子协议”,用于在客户端和服务端传输数据。

js-权威指南-Web套接字的更多相关文章

  1. 【vue.js权威指南】读书笔记(第一章)

    最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...

  2. 《JS权威指南学习总结--1.1语言核心》

    1.1语言核心 --本节主要介绍<js权威指南>基础部分各章讲解内容和一些简单的示例 本小节内容: 一.第二章讲解js注释.分号和Unicode,第三章主要讲解js变量和赋值 简单示例: ...

  3. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  4. 《JS权威指南学习总结--开始简介》

    本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...

  5. JavaScript权威指南--WEB浏览器中的javascript

    知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...

  6. Node.js权威指南学习记录

    学习nodeJS权威指南的学习记录 导航: 1.console模块 2.全局变量 3.Buffer对象 4.事件对象 5.网络请求 6.文件操作对象 一. COMMON.js的学习.(commonJS ...

  7. JS权威指南读书笔记(四)

    第十章 正则表达式 1 正则表达式直接量定义为包含在一对斜杠(/)之间的字符     a /s$/ == new RegExp("s$") 2 直接量字符:所有字母和数字都是按照字 ...

  8. Node.js权威指南 (14) - 使用Express构建Web应用程序

    14.1 Express概述 / 415 14.1.1 安装Express / 415 14.1.2 使用Express开发一个简单的示例应用程序 / 415 Backup for docker: e ...

  9. HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

    1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息.   但是c ...

随机推荐

  1. CGI + FastCGI(PHP-FPM)联系与区别 【图解 + 注释】

    〇.背景 参考了几篇文章,总结成 图解 + 注释 方便以后查阅. 参考资料: 1.https://www.zhihu.com/question/19582041 2.https://segmentfa ...

  2. 搭建json-server本地接口

    这里我们来搭建一下json-server的本地接口,来让我们的网页能够对里面的数据进行增删改查 第一步,安装json-server的全局:Linux和windows在终端或者git中里面输入以下指令, ...

  3. How to resize or create a thumbnail image from file stream on UWP

    最近在搞Ocr相关的windows universal app, 用到了一些图像处理相关的知识. 涉及到了BitmapDecoder/BitmapEncoder/IRandomAccessStream ...

  4. Strom的trident小例子

    上代码: public class TridentFunc { /** * 类似于普通的bolt */ public static class MyFunction extends BaseFunct ...

  5. springboot 入门

    使用maven构建project项目, 配置aliyun仓库, 不赘述 springboot 版本需要: jdk1.7+, maven3.2+ , gradle2.9+ 配置文件 引入父包, 放在&l ...

  6. 老司机的应用级监控——spring actuator(转)

    转自:https://www.jianshu.com/p/c043d3c71f47 什么是spring actuator? 这是一个研发老司机与运维同学都会非常喜欢的东西,随着点融集团的扩张,点融网的 ...

  7. windows7(64位) PHP APACHE MYSQL

    - 一.安装软件准备软件版本以本人安装为例,其他版本同理,软件到各官网下载      1.Apache(httpd-2.2.19-win64)      2.PHP(php-5.3.6-Win32-V ...

  8. go程序性能测量和分析

    性能测量 在很多情况之下,通过分析代码是很难确定某个模块性能好坏的.请看下面的例子,你觉得哪一个函数性能最优? //斐波那契数 package fib import "math" ...

  9. ASP.NET MVC验证码演示(Ver2)

    前一版本<ASP.NET MVC验证码演示>http://www.cnblogs.com/insus/p/3622116.html,Insus.NET还是使用了Generic handle ...

  10. AutoMapper项目实践

    本次示例,我们单独创建一个 AutoMapperService 的项目,用于放置映射配置文件,映射注册方法,映射公共方法. 1.映射配置文件 用于配置源实体到目标实体的映射 public class ...