Javascript 如何同时托管socket.io服务器和http服务器?
我有一个Javascript 如何同时托管socket.io服务器和http服务器?,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我有一个Socket.io服务器和一个基本的HTTP服务器,我把它们编码在一起,但问题是HTTP服务器试图服务Socket.io应该服务的请求 代码: ResourceRequestHandler是通过检查URL然后在该位置打开文件来提供资源的文件, 但是它也提供/socket.io请求。我会让socket.io监听另一个端口,让常规http服务器直接向它发送请求,这样你就可以确保它们不会相互干扰 // create server io = http.createServer(); io.on
Socket.io
服务器和一个基本的HTTP服务器,我把它们编码在一起,但问题是HTTP服务器试图服务Socket.io
应该服务的请求
代码:
ResourceRequestHandler是通过检查URL然后在该位置打开文件来提供资源的文件,
但是它也提供/socket.io请求。我会让socket.io监听另一个端口,让常规http服务器直接向它发送请求,这样你就可以确保它们不会相互干扰
// create server
io = http.createServer();
io.on('uncaughtException', function(exception) {
console.log(exception);
});
io.listen(4001);
http.createServer(RequestHandler)
和newhttp.Server(RequestHandler)
work基于Socket.IO 0.9.6
在socket.io之前附加自定义请求侦听器非常重要。然后,Socket.IO将为它可以处理的请求提供服务,并将所有其他请求委托给您自己的请求侦听器
socket.io/lib/manger.js中的算法如下所示。
在构造函数中:
1.删除所有现有的请求侦听器。
2.附加Socket.IO请求侦听器。
应要求:
1.试着处理这个请求。
2.如果Socket.IO无法处理该请求,它会将请求委托给原始侦听器,这些侦听器是先前在构造函数中删除的。我发现Socket.IO网站上的示例是可以理解的,您可能应该尝试并坚持这些示例,直到您不得不离开它们为止
// create server
io = http.createServer();
io.on('uncaughtException', function(exception) {
console.log(exception);
});
io.listen(4001);