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

     

  • 相关阅读:
    想做的事情
    js学习笔记2(5章操作方法)
    js学习笔记1(变量、作用域、内存)
    输入框去除默认的文字,jquery方法
    同类型元素,只有一个被选中js
    淘宝分类常见---部分显示和全部显示的js效果
    关于游戏提名信息项目的总结
    20174310隋润起网络对抗免考报告
    2019-2020-2 20174310 隋润起《网络对抗技术》Exp9 Web安全基础
    2019-2020-2 20174310隋润起《网络对抗技术》Exp8 Web基础
  • 原文地址:https://www.cnblogs.com/zjw2004112/p/11581392.html
Copyright © 2011-2022 走看看