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

时间:2012-02-19 20:09:57

标签: ruby-on-rails node.js ipc rpc

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

我已经能够通过让Nodejs写入db并从我的rails服务器读取它来在Nodejs和我的Rails服务器之间进行单向通信。

现在我想做另一种方式,也就是说Rails中的一个动作会在Nodejs中触发一个动作。显然,我可能会愚蠢,并有一个节点不断轮询数据库服务器。

我有什么选择?

  1. 在两者之间设置RPC调用
  2. 双向设置TCP套接字
  3. 是否有更简单/更快捷的选择?

2 个答案:

答案 0 :(得分:3)

技术上你有inter process communication的很多方法,如果你想要一些简单的东西我相信你应该看看dnode提供RPC on TCP或命名管道它有一个{{ 3}}。让你很容易进行RPC调用,因为它是TCP,你可以跨机器使用它。

你也可以有一个消息队列ruby implementation,但我相信会有不必要的开销。如果您有两个以上的流程相互交谈,那将是一件好事。

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

答案 1 :(得分:3)

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

这样做。您可以随意尝试或根据需要进行修改。