Socket.io 有两个节点应用程序?

Socket.io with two node apps?

我使用 express 和 node.js 为我的主要网站提供服务,这为我的网站提供了极大的灵活性。

我还有一个在单独的 node.js 服务器上运行的后端应用程序,我想我可能会考虑将它们全部合并为一个,但这会引发一些问题,我喜欢将它们抽象化。

我遇到的唯一真正的问题是 socket.io 两者之间的沟通。在前端网站上,用户可以 login/signup 访问该网站并访问功能有限的聊天框,仅限于快速聊天模块。

用户对象和任何消息都被发送到与后端应用程序相同的数据库,因此两者共享相同的数据,但实时事件不起作用,因为它们都在加载不同的客户端脚本。

所以我的问题是我应该怎么做才能让两个 node.js servers/clients 与 websocket 事件通信?

我尝试在我的站点中从我的应用加载 socket.io 脚本

<script src="http://app.example.com/socket.io/socket.io.js"></script>

出于某种原因我得到了

// adds :3000 ??
GET http://app.example.com:3000/socket.io/1/?t=1420321032701 net::ERR_CONNECTION_REFUSED

but the real time events don't work as both are loading different client side scripts.

我认为问题不在于客户端 javascript 代码,而是服务器实例不共享公共消息总线这一事实。

So my question is what should I do to allow the two node.js servers/clients communicate with websocket events?

您需要阅读文档的 using multiple nodes 部分,并将像 redis 这样的东西设置为服务器作为 pub/sub 中心枢纽。