• websocket实现简单的两端双向实时通信


    websocket是一种协议,建立在TCP之上

    与HTTP最大的区别就是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话

    HTTP 协议的缺陷:通信只能由客户端发起,如果服务器有连续的状态变化,只能使用轮训的方式,每隔一段时间去发送请求进行查询

    websocket的几个特点:

    1)建立在 TCP 协议之上,服务器端的实现比较容易

    2)与 HTTP 协议有着良好的兼容性,能通过各种 HTTP 代理服务器

    3)数据格式轻量,性能开销小,通信快,可以发送文本,也可以发送二进制数据

    4)没有同源限制,客户端可以与任意服务器通信

    5)协议标识符是ws(如果加密,则为wss)服务器地址就是 url 地址

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <input type="text" id="inp">
        <button onclick="mysend()">发送</button>
        <script>
            function mysend() {
                var value = document.getElementById('inp').value;
                var ws = new WebSocket('ws://localhost:3009');
                //连接成功后调用
                ws.onopen = function(evt) {
                    console.log('WebSocket is open now')
                    ws.send(value);
                }
                //接收服务器消息时调用
                ws.onmessage = function(evt) {
                    // ws.send(value);
                    ws.close();
                }
                //连接关闭后调用
                ws.onclose = function() {
                    console.log('WebSocket is closed now')
                }
            }
            
        </script>
    </body>
    </html>
    

      

    app.js

    创建websocket服务,进行监听客户端发来的数据

    const WebSocket = require('ws');
    const wss = new WebSocket.Server({ port: 3009 });
    
    //wss对象可以响应connection事件来处理这个WebSocket
    wss.on('connection', ws => {
        //监听message
        ws.on('message', msg => {
            console.log(`客户端发过来的数据: ${msg}`)
            ws.send();
        })
    })
    

      

  • 相关阅读:
    顺序的分数 Ordered Fractions
    容易的网络游戏
    Linux常用命令大全(share)
    Linux和UNIX监控
    Linux命令汇总
    优秀员工的10个修养
    ibatis使用--SqlMapClient对象
    一个男人关心的东西 决定了他的层次
    Linux下vi命令大全
    Linux中图形界面和文本模式相互切换
  • 原文地址:https://www.cnblogs.com/theblogs/p/15900596.html
Copyright © 2020-2023  润新知