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

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

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

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

现在我想换一种方式,也就是 Rails 中的一个 Action 会触发 Nodejs 中的一个 Action 。显然,我可能很笨,让一个 Node 不断轮询数据库服务器。

我有哪些选择?

  1. 在两者之间设置 RPC 调用
  2. 双向设置 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/

相关文章:

javascript - 如何在不刷新html页面的情况下在表上显示数据(使用nodejs和mysql ajax)

c++ - 如何测试输出到 std::cout(连接到管道)是否会阻塞

c - 下面的 srand(getpid()) 和 rand() 在做什么?

ruby-on-rails - Rails 中的音频 Assets 没有路由匹配

javascript - 如何在 Rails 3 中组织 javascript 文件?

javascript - 查询引用文档的字段

node.js - nodejs - JSONWebToken不会过期

ruby-on-rails - ActiveRecord SQL 执行时间

ruby-on-rails - 如何通过 Amazon Cloudfront 控制下载次数

c++ - 按升序从消息队列中读取数据