HTML5 WebSockets学习

轮询、长轮询及流三种提供实时数据解决方案,都会涉及到HTTP请求和相应报头,其中包含大量额外的、不必要的报头数据,会造成传输延迟。

    WebSocket,是Web应用程序的传输协议,类似于TCP,提供了双向的按序到达的数据流。作为Web的一部分,WebSocket连接的是URL,而非因特网上的主机和端口。

    WebSocket使用:

        要连接远程主机,只需要新建一个WebSocket实例,提供希望连接的对端URL。

        ps:ws://wss://前缀分别表示WebSocket连接安全WebSocket连接

        

        基于同一底层TCP/IP连接,在客户端和服务器端之间的初始握手阶段,将HTTP协议升级至WebSocket协议,WebSocket连接就建立完成了。连接一旦建立完成,WebSocket数据帧就可以以全双工的模式在客户端和服务器间进行双向传送。

        连接本身,是通过WebSocket接口定义的message事件和send函数来运作的。

时间监听器

    WebSocket编程遵循异步编程模式;

    打开Socket后,只需要等待事件发生,而不需要主动向服务器轮询,所以需要在WebSocket对象中添加回调函数来监听事件:

    四个事件:

        open:Socket连接建立时被触发

        message:收到消息时被触发

        close:Socket连接关闭时被触发

        error:错误事件发生时会响应未料到的错误


    事件处理回调函数:

        onopen: webSocket.onopen  = function(e) {...}

        onmessage: webSocket.onmessage = function(e) {...}

        onclose: webSocket.onclose = function(e) {...}

        onerror: webSocket.onerror = function(e) {...}


    发送消息:

        WebSocket处于打开状态时,可以采用send()方法来发送消息;

            document.getElementById("sendBtn").onclick = function() {

                webSocket.send(document.getElementById("inputMsg").value);

            }



你可能感兴趣的:(HTML5 WebSockets学习)