来自不同服务器的http服务器和Web套接字

时间:2014-07-07 05:41:47

标签: node.js express socket.io

配置http服务器(使用express)和分配给它的套接字服务器(socket.io)非常容易:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

我如何在两个不同的node.js实例中运行http服务器和套接字服务器

我的想法是以这种方式利用性能,释放http节点实例,同时还要将通知发送回客户端。

1 个答案:

答案 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);