后端使用 nodejs 开发,使用到了nodejs-websocket 库
前端使用了 H5 原生的 WebSocket 功能
直接上代码
后端代码(backend.js):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
   | const ws = require('nodejs-websocket');
 
 
 
 
 
 
  function run(port = 6868, host = 'localhost') {     return new Promise((resolve) => {         const server = ws.createServer((connection) => {             console.log('检测到新的连接');             resolve(connection);         });
          server.listen(port, host);     }); }
  async function test() {     let socket = await run();
           socket.sendText('服务端发出的信息');
           socket.on('text', (str) => {         console.log(`服务端收到的信息:${str}`);     }); }
  test();
  | 
前端代码(frontend.html):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
   | <!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>         <script>             
 
 
 
              function run(url) {                 return new Promise((resolve) => {                     let socket = new WebSocket(url);                     socket.addEventListener('open', () => {                         console.log('创建连接成功');                         resolve(socket);                     });                 });             }
              async function test() {                 let socket = await run('ws://localhost:6868');
                                   socket.send('客户端发出的信息');
                                   socket.addEventListener('message', (res) => {                     console.log(`客户端收到的信息:${res.data}`);                 });             }
              test();         </script>     </body> </html>
   |