我的问题是当WebSocket和HTTP监听同一个端口时,这会有问题吗? WebSocket是否会降低HTTP服务器的速度,反之亦然?
答案 0 :(得分:0)
不,它不应该导致问题。它们需要在同一个端口上运行,但端口不必显式为端口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应用程序和多少连接并发连接决定了它的效率。因此它可能会或可能不会减慢服务器速度。除非你有数百万的连接和发射,否则速度可能不应成为问题。