记录实用有价值的内容

在Express中运行Websocket服务

推荐一个express的一个中间件express-ws,配置简单,使用方便,

Websocket服务会随着express的运行自动附加运行,适合本地开发使用

1、安装

npm install express-ws -D
2、配置

在文件/build/dev-server.js 中,加入相应的服务文件及配置即可

  var express = require('express')
  var app = express()
  var expressWs = require('express-ws')
  var util = require('util')
  
  expressWs(app)
  app.ws('/ws', function(ws, request, next) {
      util.inspect(ws)
      ws.on('message', function(msg) {
          console.log('receive_message', msg)
          ws.send('echo:' + msg)
     })
  })
  app.listen(3000)
3、运行

执行 npm run dev 时,即可使用
服务端收到的消息会在控制台显示,具体的事件什么的都可以自己定义啦

客户端的示例代码

  <!DOCTYPE html>
  <html>
  <head>
      <meta charset="utf-8" />
      <title>Websocket客户端示例</title>
  </head>
  <body>
  <script>
      var ws = new WebSocket('ws://localhost:3000/ws');
      ws.onmessage = function (e) {
          console.log('_message', e.data);
     };
      ws.onerror = function (err) {
          console.log('_error', err);
     };
      ws.onopen = function () {
          console.log('_connect')
     };
      ws.onclose = function () {
          console.log('_close');
     };
      // ws.send('test message data'); // 测试发送消息
  </script>
  </body>
  </html>