websocket的选择了ws,性能好,使用多,能承载的客户端数量也多。
安装ws
npm install ws --save
ws的基本使用
不同场景有不同用法,具体可以看官方的文档,在入口文件(如app.js)中添加如下代码,ws服务就监听在3000端口了。
const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 3000 }); wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('something'); });
与KOA共享端口
有些时候不想让服务器开启两个端口,想让websocket和koa共享一个端口,先把ws封装成一个模块再说
//util/ws.js module.exports = wss => { wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); }); ws.send('something'); }); }
接着在app.js中引入ws模块,这里要注意改写一下koa原本的简写方式
// app.js const http = require('http'); const Koa = require('koa'); const WebSocket = require('ws'); const app = new Koa(); const WebSocketApi = require('./util/ws');//引入封装的ws模块 const server = http.createServer(app.callback()) const wss = new WebSocket.Server({// 同一个端口监听不同的服务 server }); WebSocketApi(wss) server.listen(3000)
完整代码
下载完整代码后在目录下运行命令 node app.js
启动服务即可