我目前正在使用 Rails 来提供静态网页,并且我正在尝试使用 NodeJs 来处理我的应用程序的一些实时方面。
通过让 Nodejs 写入数据库并让我的 Rails 服务器从中读取,我已经能够在 Nodejs 与我的 Rails 服务器之间进行单向通信。
现在我想换一种方式,也就是 Rails 中的一个 Action 会触发 Nodejs 中的一个 Action 。显然,我可能很笨,让一个 Node 不断轮询数据库服务器。
我有哪些选择?
- 在两者之间设置 RPC 调用
- 双向设置 TCP 套接字
是否有更简单/更快的选择?
最佳答案
从技术上讲,您有很多方法来实现 inter process communication ,如果你想要简单的东西,我相信你应该看看 dnode它在 TCP 或命名管道上提供 RPC,它有一个 ruby implementation .让您可以轻松进行 RPC 调用,并且由于它是 TCP,您可以跨机器使用它。
您还可以有一个消息队列,例如 zeromq ,但我相信会有不必要的开销。这对于您有两个以上的进程相互通信的情况会很好。
除了所有这些,如果你想要最小的延迟,如果你的进程都在一台机器上运行,我相信你应该使用命名管道和 stdio 进行通信,但我不知道 Node 中的任何模块会帮助你抽象它,你必须在 stdio 上构建你自己的 RPC 模块。
关于ruby-on-rails - 如何构建 Nodejs 服务器和 Rails 之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352786/