Socket.io和HTTP一样监听同一个端口是否好?
答
不,不应该引起问题。他们需要在相同的端口上运行,但端口不必显式地为端口80(这是默认的HTTP端口)。无论你的Node HTTP服务器在监听什么,Socket.io都会监听。以下代码来自Socket.io网站。正如你所看到的,在服务器和Socket.io都在端口3000
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
这听应该不会造成问题,因为毕竟它是必需的。唯一的其他选择是加入一个I帧或允许跨域请求。但取决于什么样的Socket.io应用程序和多少个连接同时连接决定了它的效率。所以它可能会或可能不会减慢服务器速度。除非你有数百万个连接并发射,否则速度可能不应该成为问题。