我有一个带有Socket.IO的Node.JS服务器,它运行在带有Express的HTTP上。有了这个,所有用户都通过一个地址连接,例如https://socket.example.com:443
,
问题是,同一本地网络上的虚拟机必须采用更长的路径才能到达Socket.IO服务器,即使它们位于同一网络上。
是否可以同时使用HTTP和HTTP运行同一个NodeJS+Socket.IO应用程序?
通过这种方式,同一网络上的应用程序可以仅使用http +计算机的IP连接到服务器(例如:http:192.168.0.1:3400
),从而提高通信速度(并降低Google云的成本)。
我这样运行应用程序。
app = require('express')(),
serverSSL = require('https').Server(credentials, app);
io = require('socket.io')(serverSSL, {
cors: {
origin: "*",
methods: ["GET", "POST"]
}
});
或者我必须放置一个nginx代理通过HTTP连接到服务器,并保持它在主服务器上运行HTTP?
--编辑2022年1月18日--
我的计划是使用PM2来运行代码,并且由于socket.io在启动时需要HTTP或HTTPS服务器,所以我认为使用HTTP服务器和负载平衡器与NGINX来处理HTTPS会更好。
https://socket.io/docs/v4/pm2/
--编辑2022年1月19日--
解决方案:https://github.com/socketio/socket.io/discussions/4600
1条答案
按热度按时间pgpifvop1#