node.js - 如何使用 NodeJS websocket 在 websocket 服务器上创建多个通道?
问题描述
我正在使用此代码来处理 websocket 服务器上的用户请求:
var WebSocketServer = require('websocket').server;
var http = require('http');
var server = http.createServer(function(request, response) {
console.log((new Date()) + ' Received request for ' + request.url);
response.writeHead(405);
response.end();
});
server.listen(3333, function() {
console.log((new Date()) + ' Server is listening on port 3333');
});
wsServer = new WebSocketServer({
httpServer: server,
autoAcceptConnections: false
});
function originIsAllowed(origin) {
// put logic here to detect whether the specified origin is allowed.
return true;
}
wsServer.on('request', function(request) {
if (!originIsAllowed(request.origin)) {
// Make sure we only accept requests from an allowed origin
request.reject();
console.log((new Date()) + ' Connection from origin ' + request.origin + ' rejected.');
return;
}
var connect = request.accept('register', request.origin)
connect.on('message', function(messageText) {
// do business logic here if message coming into the register channel
})
connect.on('close', function(reasonCode, description) {
console.log((new Date()) + ' Peer ' + connect.remoteAddress + ' disconnected.');
});
})
现在如何创建另一个通道来处理其他类型的消息?
我试过这个,但收到WebSocketRequest may only be accepted or rejected one time.
错误消息:
var connect = request.accept('register', request.origin)
connect.on('message', function(messageText) {
// business logic here if message coming into the register channel
})
var getPhotos = request.accept('get_photos', request.origin)
getPhotos.on('message', function(messageText) {
// business logic here if message coming into the get_photos channel
})
如何处理多个渠道?这个websocket
npm 包可以吗?
解决方案
推荐阅读
- reactjs - React 按钮 onClick 事件调用其他组件
- cmd - findstr 按空格分割并显示第三个单词
- python - 根据熊猫中的前一行创建新的平均列
- python - Zip_Longest 返回一个结果
- python - 迭代 .csv 文件并分别命名数据框
- go - 如何在 go-lang 中导入包或如何正确构建包结构?
- c# - 使用 Postgres 和 EF 核心解决“列为空”问题
- javascript - 尽管 'enabled' 设置为 false,React Query 仍会继续重试
- oracle - 从全局临时表中选择数据
- javascript - 我们如何在基于类的组件中调用 react js 的递归函数