网上的大多数例子都提供了这样的内容:
var app = require('express').createServer()
, io = require('socket.io').listen(app);
app.listen(80);
要求您让http和套接字服务器处于同一进程中。
如果有人制作一个有一定大小的网站,可能需要将两个服务器分开,但仍然让它们使用相同的域和端口。怎么会这样呢?
答案 0 :(得分:0)
首先让我帮助澄清你的问题。
您希望做的是在单独的计算机上运行NodeHTTP Web服务器和SocketIO客户端,但仍然可以通过相同的域(非子域)访问
这将是非常困难和棘手的,你将需要多个IP到该框和haproxy相应地映射请求
如果它是负载平衡,你需要阅读我的堆栈:
我有几个服务器(5个实际值)通过循环进行负载平衡,所以我在DNS记录中有这个
relay.domain.com: {
A : 10.0.0.1,
A : 10.0.0.2,
A : 10.0.0.3,
A : 10.0.0.4
}
我还有一台位于 master.domain.com(10.0.0.0)的主服务器,来自我的socket.io客户端的所有连接都来自 relay.domain.com 并且连接负载平衡到4台服务器。
4个服务器中的每一个都列出了端口80上的连接,但是它们都创建了一个到主服务器的 socket.io-client 连接,并将所有请求发送给主服务器,然后主服务器处理套接字数据,如果要通知它的数据,我们会将数据发送回所有中继服务器,然后中继服务器通知客户端列表。