• WebSocket实战之JavaScript例子


    一、详细代码案例 

    详细解读一个简单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

  • 相关阅读:
    LED点阵显示
    KEIL安装
    KEIL安装
    ubuntu安装svn
    python基础-面向过程编程
    js遇到代码出现问题时如何调试代码
    js内置对象的常用属性和方法(Array | String | Date | Math)
    js函数的使用+封装+代码复用
    JavaScript中条件分支语句和循环语句的使用,用简洁的代码实现强大功能
    JavaScript的语法、数据类型、基本算数和逻辑运算操作
  • 原文地址:https://www.cnblogs.com/sghy/p/9828361.html
Copyright © 2020-2023  润新知