这些事件会告诉你什么时候连接建立

时间:2022-01-02 08:30:19

这一章介绍如何用WebSocket API来控制协议和创建应用,运用 供给的现有WebSocket处事器,我们可以收动员静、创建一些简单的WebSocket应用。一步一步的学习使用WebSocket API,最后我们会讨论浏览器的撑持度和连通性。这一章的重点是WebSocket 协议在Web客户真个应用,在稍后的章节会介绍WebSocket协议以及其使用环境。

综述:

     正如第一章提到的,WebSocket包罗网络协议和API,让你能够在客户端和处事端创建WebSocket连接,第三章会详细讨论协议的细节,我们先看一下API。

WebSocket API其实就是一个使用WebSocket协议的接口,通过它来成立全双工通道来收动员静,简单易学,要连接长途处事器,只需要创建一个WebSocket东西实体,并传入一个处事真个URL。在客户端和处事端一开始握手的期间,http协议升级到WebSocket协议就成立了连接,底层都是TCP协议。一旦成立连接,通过WebSocket接口可以重复的发送动静。在你的代码里面,你可以使用异步事件监听连接生命周期的每个阶段。

WebSocket API是纯事件驱动,一旦成立全双工连接,当处事端给客户端发送数据或者资源,它能自动发送状态转变的数据和通知。所以你不需要为了状态的更新而去轮训Server,在客户端监听即可。在后续的章节我们会介绍更高级的协议,例如STOMP和XMPP,会学习差此外WebSocket API使用例子,然而此刻,先仔细看看API。

入门:

     首先,我们需要通过挪用WebSocket结构函数来创建一个WebSocket连接,结构函数会返回一个WebSocket实例,可以用来监听事件。这些事件会报告你什么时候连接成立,什么时候动静达到,什么时候连接*了,以及什么时候产生了错误。WebSocket协议界说了两种URL方案,WS和WSS分袂代表了客户端和处事端之间未加密和加密的通信。WS(WebSocket)类似于Http URL,而WSS(WebSocket Security)URL 暗示连接是基于安适传输层(TLS/SSL)和https的连接是同样的安适机制。

WebSocket的结构函数需要一个URL参数和一个可选的协议参数(一个或者多个协议的名字),协议的参数例如XMPP(Extensible Messaging and Presence Protocol)、SOAP(Simple Object Access Protocol)或者自界说协议。而URL参数需要以WS://或者WSS://开头,例如:ws://,如果URL有语法错误,结构函数会抛出异常。

// Create new WebSocket connection var ws = new WebSocket("ws://www.websocket.org"); //测试了下链接不上。

     第二个参数是协议名称,是可选的,处事端和客服端使用的协议必需一致,这样收动员静相互才华理解,你可以界说一个或多个客户端使用的协议,处事端会选择一个来使用,一个客服端和一个处事端之间只能有一个协议。固然都得基于WebSocket,WebSocket的重大好处之一就是基于WebSocket协议的广泛使用,让你的Web能够拥有传统桌面措施那样的能力,这个我们将在第三章第六节学习到。

    言归正传,我们回到结构函数,在第一次握手之后,和协议的名称一起,客户端会发送一个Sec-WebSocket-Protocol 头,处事端会选择0个或一个协议,响应会带上同样的Sec-WebSocket-Protocol 头,否则会*连接。通过协议协商(Protocol negotiation ),我们可以知道给定的WebSocket处事器所撑持的协议和版本,然后应用选择协议使用。

// Connecting to the server with one protocol called myProtocol var ws = new WebSocket("ws://echo.websocket.org", "myProtocol"); //myProtocol 是假设的一个界说好的且切合标准的协议。

你可以通报一个协议的数组。

var echoSocket = new WebSocket("ws://echo.websocket.org", ["com.kaazing.echo","example.imaginary.protocol"]) //处事端会选择此中一个使用 echoSocket.onopen = function(e) { // Check the protocol chosen by the server console.log(echoSocket.protocol); }

输出:com.kaazing.echo

协议这个参数有三种。

1.注册协议:按照RFC6455(WebSocket 协议)和IANA被官方注册的标准协议。例如 微软的SOAP。

详情可以参考: 

这些事件会告诉你什么时候连接建立

 

看到两个华为的

2.开放协议:被广泛使用的标注协议,例如XMPP和STOMP。但没有被正式注册。

3.自界说协议:本身编写和使用的WebSocket的协议。

协议会再后续章节给出详细介绍,下面先看事件、东西和要领以及实例。

WebSocket事件: