我使用express和node.js为我的主网站提供服务,这为我的网站提供了巨大的灵 active 。
我还有一个在单独的 Node.js 服务器上运行的后端应用程序,我想我可能会考虑将其全部合并为一个,但这会引发一些问题,但我喜欢将它们抽象化。
我遇到的唯一真正问题是两者之间的 socket.io 通信。在前端站点上,用户可以登录/注册该站点,并可以访问功能有限的聊天框,仅限于快速聊天模块。
用户对象和任何消息都发送到与后端应用程序相同的数据库,因此两者共享相同的数据,但实时事件不起作用,因为两者都加载不同的客户端脚本。
所以我的问题是我应该怎么做才能允许两个 Node.js 服务器/客户端通过 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 代码,而是服务器实例不共享公共(public)消息总线。
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 中央集线器。
关于javascript - Socket.io 有两个 Node 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759875/