zoukankan      html  css  js  c++  java
  • websocket

    WebSocket 是一种网络通信协议。RFC6455 定义了它的通信标准。是对HTTP协议的补充。

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

    反向ajax服务器主动向客户端推送时间

    了解计算机网络协议的人,应该都知道:HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。

    这种通信模型有一个弊端:HTTP 协议无法实现服务器主动向客户端发起消息。

    这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数 Web 应用程序将通过频繁的异步JavaScript和XML(AJAX)请求实现长轮询。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。

    <!DOCTYPE html>
    <html>
        <head>
            <meta name="viewport" content="width=device-width" />
            <title>WebSocket 客户端</title>
        </head>
        <body>
            <div>
                <input type="button" id="btnConnection" value="连接" />
                <input type="button" id="btnClose" value="关闭" />
                <input type="button" id="btnSend" value="发送" />
            </div>
            <script src="jquery-1.11.1.min.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                var socket;
                if(typeof(WebSocket) == "undefined") {
                    alert("您的浏览器不支持WebSocket");
                    return;
                }
                $("#btnConnection").click(function() {
                    //实现化WebSocket对象,指定要连接的服务器地址与端口
                    socket = new WebSocket("ws://localhost:8888/");
                    //打开事件
                    socket.onopen = function() {
                        alert("Socket 已打开");
                        //socket.send("这是来自客户端的消息" + location.href + new Date());
                    };
                    //获得消息事件
                    socket.onmessage = function(msg) {
                        alert(msg.data);
                    };
                    //关闭事件
                    socket.onclose = function() {
                        alert("Socket已关闭");
                    };
                    //发生了错误事件
                    socket.onerror = function() {
                        alert("发生了错误");
                    }
                });
                
                //发送消息
                $("#btnSend").click(function() {
                    socket.send("这是来自客户端的消息" + location.href + new Date());
                });
                
                //关闭
                $("#btnClose").click(function() {
                    socket.close();
                });
            </script>
        </body>
    
    </html>
    

      

  • 相关阅读:
    Palindrome Linked List 解答
    Word Break II 解答
    Array vs Linked List
    Reverse Linked List II 解答
    Calculate Number Of Islands And Lakes 解答
    Sqrt(x) 解答
    Find Median from Data Stream 解答
    Majority Element II 解答
    Binary Search Tree DFS Template
    188. Best Time to Buy and Sell Stock IV
  • 原文地址:https://www.cnblogs.com/aten/p/9063234.html
Copyright © 2011-2022 走看看