最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在相对路径上创建多个Node.js websockets

IT培训 admin 3浏览 0评论

如何在相对路径上创建多个Node.js websockets

例如,如果我想运行:

var http = require('http');
var s = http.createServer();
var WebSocket = require('ws');
var WebSocketServer = WebSocket.Server;
s.on('request', (request, response)=>{
// other codes
});
s.listen(process.env.PORT || 3000);
var a = new WebSocketServer('/a');
var b = new WebSocketServer('/b');
var c = new WebSocketServer('/c');

理想情况下,我希望a成为process.env.host:process.env.PORT/a,同样适用于bc。怎么做?什么是正确的语法?

回答如下:

您不能在同一端口上拥有多个服务器。您可以实现一个webSocket服务器,然后根据传入的URL将传入的请求路由到不同的代码。这应该就是你所需要的。

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws, req) {
    const location = url.parse(req.url, true);
    // branch your code here based on location.pathname
});

如果您希望能够根据其原始路径单独向每个组广播,则可以根据传入路径实现连接套接字的集合,以便您可以在任何特定连接中向所有人广播。

如果你想继续想要更多这样的功能,那么也许你应该使用socket.io而不是已经内置的房间和命名空间,它们可以为你做这两件事。

如何在相对路径上创建多个Node.js websockets

例如,如果我想运行:

var http = require('http');
var s = http.createServer();
var WebSocket = require('ws');
var WebSocketServer = WebSocket.Server;
s.on('request', (request, response)=>{
// other codes
});
s.listen(process.env.PORT || 3000);
var a = new WebSocketServer('/a');
var b = new WebSocketServer('/b');
var c = new WebSocketServer('/c');

理想情况下,我希望a成为process.env.host:process.env.PORT/a,同样适用于bc。怎么做?什么是正确的语法?

回答如下:

您不能在同一端口上拥有多个服务器。您可以实现一个webSocket服务器,然后根据传入的URL将传入的请求路由到不同的代码。这应该就是你所需要的。

const WebSocket = require('ws');

const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', function connection(ws, req) {
    const location = url.parse(req.url, true);
    // branch your code here based on location.pathname
});

如果您希望能够根据其原始路径单独向每个组广播,则可以根据传入路径实现连接套接字的集合,以便您可以在任何特定连接中向所有人广播。

如果你想继续想要更多这样的功能,那么也许你应该使用socket.io而不是已经内置的房间和命名空间,它们可以为你做这两件事。

发布评论

评论列表 (0)

  1. 暂无评论