zoukankan      html  css  js  c++  java
  • html5 WebSocket的Js实例教程

    详细解读一个简单+

    ,附带完整的javascript websocket实例源码,以及实例代码效果演示页面,并对本实例的核心代码进行了深入解读。

    从WebSocket通讯三个阶段(打开握手、数据传递、关闭握手)进行了探讨,各阶段中浏览器和服务器做了些什么事情也有所涉及。

    //检查浏览器是否支持WebSocket
    if(window.WebSocket){
        console.log('This browser supports WebSocket');
    }else{
        console.log('This browser does not supports WebSocket');
    }

    Html演示代码

    复制代码
    <!DOCTYPE html> 
    <meta charset="utf-8" /> 
    <title>WebSocket Test</title> 
    <script language="javascript"type="text/javascript"> 
        var wsUri ="ws://echo.websocket.org/";
        var output; 
         
        function init() {
            output = document.getElementById("output");
            testWebSocket();
        } 
      
        function testWebSocket() {
            websocket = new WebSocket(wsUri);
            websocket.onopen = function(evt) {
                onOpen(evt)
            };
            websocket.onclose = function(evt) {
                onClose(evt)
            };
            websocket.onmessage = function(evt) {
                onMessage(evt)
            };
            websocket.onerror = function(evt) {
                onError(evt)
            };
        } 
      
        function onOpen(evt) {
            writeToScreen("CONNECTED");
            doSend("WebSocket rocks");
        } 
      
        function onClose(evt) {
            writeToScreen("DISCONNECTED");
        } 
      
        function onMessage(evt) {
            writeToScreen('<span style="color: blue;">RESPONSE: '+ evt.data+'</span>');
            websocket.close();
        } 
      
        function onError(evt) {
            writeToScreen('<span style="color: red;">ERROR:</span> '+ evt.data);
        } 
      
        function doSend(message) {
            writeToScreen("SENT: " + message); 
            websocket.send(message);
        } 
      
        function writeToScreen(message) {
            var pre = document.createElement("p");
            pre.style.wordWrap = "break-word";
            pre.innerHTML = message;
            output.appendChild(pre);
        } 
      
        window.addEventListener("load", init, false); 
    </script> 
    <h2>WebSocket Test</h2> 
    <div id="output"></div> 
    </html>
    复制代码

    二、主要代码解读:

    1、申请一个WebSocket对象

    参数是需要连接的服务器端的地址,同http协议使用http://开头一样,WebSocket协议的URL使用ws://开头,另外安全的WebSocket协议使用wss://开头。

    var wsUri ="ws://echo.websocket.org/";
    websocket = new WebSocket(wsUri);

    2、WebSocket对象一共支持四个消息 onopen, onmessage, onclose和onerror

         我们可以看出所有的操作都是采用消息的方式触发的,这样就不会阻塞UI,使得UI有更快的响应时间,得到更好的用户体验。

    (1)当Browser和WebSocketServer连接成功后,会触发onopen消息;

    websocket.onopen = function(evt) {};

    (2)如果连接失败,发送、接收数据失败或者处理数据出现错误,browser会触发onerror消息;

    websocket.onerror = function(evt) { };

    (3)当Browser接收到WebSocketServer发送过来的数据时,就会触发onmessage消息,参数evt中包含server传输过来的数据;

    websocket.onmessage = function(evt) { };

    (4)当Browser接收到WebSocketServer端发送的关闭连接请求时,就会触发onclose消息。

    websocket.onclose = function(evt) { };

    本文参考地址:https://www.cnblogs.com/tinywan/p/5894403.html

     

  • 相关阅读:
    根据系统的pid查询sql语句
    DORADO实现动态拼装查询条件
    一个Spring的配置管理接口
    MS SQL Server Management Studio连接到SQL Server命名实例的方法
    WSDL学习笔记
    显示MyBatis/Ibatis的SQL语句
    测试代码显示
    C#中一个项目中无法引用另外一个项目中的类的问题
    Learn How To Use LogMiner(Practice)
    WIN2003 IIS6 FastCGI php5.33配置重点
  • 原文地址:https://www.cnblogs.com/zjw2004112/p/11581392.html
Copyright © 2011-2022 走看看