koa中使用websocket(ws),并共享端口

2019-12-02阅读(13611)评论(0)牵着狗狗看MM

苏州实时公交查询

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 启动服务即可

赞(0)
转载请注明来源:Web前端(W3Cways.com) - Web前端学习之路 » koa中使用websocket(ws),并共享端口
分享到: 更多 (0)