首页 > 解决方案 > 为需要在我的网站上自动更新数据的每个页面制作许多 https websocket 服务器是否很好?

问题描述

我有 5 个包含不同数据的页面,其内容总是动态变化。我有使用节点 js、websocket、cors、express、https 和 force ssl 的托管和 VPS 站点。我正在为每个页面制作单独的 https 和 websocket 服务器,它侦听客户端连接的不同端口。当托管站点向 VPS 发送新数据时,它会将这些数据发送给所选页面的用户数组。为每个需要动态更新数据的页面制作许多单独的 https websocket 服务器是否很好?例如,如果我想制作 15 个这样的页面?


let storeHouseServer = https.createServer(options,app);
let pointsServer = https.createServer(options,app);
let workUserServer = https.createServer(options,app);
let statementUserServer = https.createServer(options, app);

storeHouseServer.listen(storeHousePort, function() {
    console.log(new Date() + " Server is listening on port " + storeHousePort);
});
pointsServer.listen(pointPort, function() {
    console.log(new Date() + " Server is listening on port " + storeHousePort);
});
workUserServer.listen(workUserPort, function() {
    console.log(new Date() + " Server is listening on port " + workUserPort);
});
statementUserServer.listen(statementUserPort, function() {
    console.log(new Date() + " Server is listening on port " + statementUserPort);
});

let wsStoreHouseServer = new webSocketServer({
    httpServer: storeHouseServer
});
let wsPointsServer = new webSocketServer({
    httpServer: pointsServer
});
let workWsServer = new webSocketServer({
    httpServer: workUserServer
});
let statementWsServer = new webSocketServer({
    httpServer: statementUserServer
});

标签: node.jsexpresshttpswebsocket

解决方案


通常不会为使用 webSocket 的每个页面创建单独的 webSocket 服务器,就像您不会为站点上的每个网页创建不同的 web 服务器一样。

相反,您将创建一个 webSocket 服务器,每个页面都可以向其发送自己的消息和数据,并且该服务器可以根据发送的信息识别它被要求做什么并发送适当的响应。

如果您使用 socket.io(webSocket 之上的一个层),那么您还拥有消息、命名空间和房间,它们为您提供了更大的灵活性来通过一个服务器进行通信。


推荐阅读