koa使用websocket
import Koa from 'koa';
const websockify = require('koa-websocket');
const app = websockify(new Koa());
const socketMap = {} as any;
app.ws.use((ctx: any, next: any) => {
if (ctx.query.user) {
socketMap[ctx.query.user] = ctx.websocket;
}
return next(ctx);
});
function send(userIDs: string[], data: any) {
const dataStr = JSON.stringify(data);
userIDs.forEach((userID) => {
if (socketMap[userID]) {
socketMap[userID].send(dataStr);
}
});
}
module.exports = { app, send };
