配置http服务器(使用express)和分配给它的套接字服务器(socket.io)非常容易:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
我如何在两个不同的node.js实例中运行http服务器和套接字服务器?
我的想法是以这种方式利用性能,释放http节点实例,同时还要将通知发送回客户端。
答案 0 :(得分:1)
在常规的Socket.IO + Express应用程序中,Socket.IO拦截以/socket.io/
开头的请求。
您可以设置Nginx(或支持代理的任何其他网络服务器)监听80端口,如果请求以/socket.io/
开头,则将其作为Socket.IO进程的代理,否则为Express进程。
编辑:要在单独的流程中设置Socket.IO,您可以使用以下代码:
var io = require('socket.io')();
io.on('connection', function(socket){
//here you can emit and listen messages
});
io.listen(3000);