js-权威指南-Web套接字

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的服务都要定义自己的“子协议”,用于在客户端和服务端传输数据。

原文地址:https://www.cnblogs.com/zczhangcui/p/6657657.html