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

Posted

技术标签:

【中文标题】为需要在我的网站上自动更新数据的每个页面制作许多 https websocket 服务器是不是很好?【英文标题】:Is this good to make many https websocket servers for every page that needs data auto update on my site?为需要在我的网站上自动更新数据的每个页面制作许多 https websocket 服务器是否很好? 【发布时间】:2019-07-13 08:10:41 【问题描述】:

我有 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
);

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于为需要在我的网站上自动更新数据的每个页面制作许多 https websocket 服务器是不是很好?的主要内容,如果未能解决你的问题,请参考以下文章

自动进行Facebook页面访问令牌生成

index.html 不会自动打开

从api更新数据时如何自动刷新组件,无需页面刷新

制作自定义反应钩子以执行查询和突变

我可以在我的网站上使用指纹扫描仪吗? [关闭]

在我的导航栏 iOS 7 中设置色调/半透明级别的问题