我的socket io和Node express js服务器现在都收听相同的端口。它托管在AWS ElasticBeanStalk中。它的工作性很好。 现在由于安全限制,必须将socket io移动到不同的端口。它是与节点js app相同的代码库的一部分。 我可以为socket io听另一个端口吗?这会起作用吗?我需要在ElasticBeanStalk中做些什么改变?必须打开任何新端口或端口是否有任何限制?
答案 0 :(得分:0)
docs提供了通过标准节点HTTP通过Express 或连接的示例。所以从技术上讲,你可以把它们融合在一起,然后听不同的端口。
var exApp = require('express')();
var exServer = require('http').Server(exApp);
var ioApp = require('http').createServer(handler);
var io = require('socket.io')(ioApp);
exServer.listen(80);
ioApp.listen(81);
function handler (req, res) {
res.writeHead(200).end({});
}
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
// Then whatever you want to do with `io`, and `exApp`.
如果您转到localhost:80
,则会提供Express应用,如果您向localhost:81
发送socket.io请求,则应触发io.connection()
我还没有经过技术测试,所以请告诉我,如果我疯了,我会进一步思考它。