如何构buildNodejs服务器和rails之间的通信?

我目前正在使用rails来提供静态网页,我正在尝试使用NodeJ来处理我的应用程序的一些实时方面。

我已经能够通过让Nodejs写入数据库和我的Rails服务器读取数据,在Nodejs和Rails服务器之间进行单向通信。

现在我想以另一种方式做,也就是Rails中的一个动作会触发Nodejs中的一个动作。 很明显,我可以哑巴,有一个节点不断轮询数据库服务器。

我有什么select?

  1. 在两者之间build立RPC调用
  2. 两种方式build立一个TCP套接字

有更简单/更快的select吗?

从技术上讲,你有很多进程间通信的方式,如果你想要简单的东西,我相信你应该看看在TCP或命名pipe道上提供RPC的dnode ,它有一个Ruby实现 。 使你很容易进行RPC调用,因为它是TCP,你可以使用它跨机器。

你也可以有一个这样的消息队列zeromq ,但我相信,将有不必要的开销。 如果你有两个以上的过程相互交谈,那么这将是件好事。

除了所有这些,如果你想要最小的延迟,如果你的进程都在一台机器上运行,我相信你应该使用命名pipe道和stdio进行通信,但我不知道节点中的任何模块将帮助你抽象,你必须在stdio上build立自己的RPC模块。

如果你使用的是redis,我最近写了一个redis_message_capsule:

  • rubygem
  • 节点npm包

去做这个。 随意尝试或修改它,只要你喜欢。