node.js - 为需要在我的网站上自动更新数据的每个页面制作许多 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
});
解决方案
通常不会为使用 webSocket 的每个页面创建单独的 webSocket 服务器,就像您不会为站点上的每个网页创建不同的 web 服务器一样。
相反,您将创建一个 webSocket 服务器,每个页面都可以向其发送自己的消息和数据,并且该服务器可以根据发送的信息识别它被要求做什么并发送适当的响应。
如果您使用 socket.io(webSocket 之上的一个层),那么您还拥有消息、命名空间和房间,它们为您提供了更大的灵活性来通过一个服务器进行通信。
推荐阅读
- python - 石头剪刀布python程序输入错误
- python - 将给定的 pandas 数据帧转换为另一个数据帧
- google-oauth - 使用 oauth2client 创建 google api 凭据(来自具有范围和委托帐户的服务帐户)
- java - 想用 Maven Plugin Exec 编译 Inno Setup(.iss 文件)
- javascript - AJAX 响应未定义
- javascript - 想要在 d3 sunburst 图中仅显示父节点的有限子节点
- apache - 带有可变查询参数的 htaccess 重定向
- java - javax.crypto.AEADBadTagException:标签不匹配!加密字符串时出错
- java - 自定义字段与 MONGO 进行聚合
- xamarin.ios - Xamarin iOS 应用本地化不起作用