如何构buildNodejs服务器和rails之间的通信?
我目前正在使用rails来提供静态网页,我正在尝试使用NodeJ来处理我的应用程序的一些实时方面。
我已经能够通过让Nodejs写入数据库和我的Rails服务器读取数据,在Nodejs和Rails服务器之间进行单向通信。
现在我想以另一种方式做,也就是Rails中的一个动作会触发Nodejs中的一个动作。 很明显,我可以哑巴,有一个节点不断轮询数据库服务器。
我有什么select?
- 在两者之间build立RPC调用
- 两种方式build立一个TCP套接字
有更简单/更快的select吗?
从技术上讲,你有很多进程间通信的方式,如果你想要简单的东西,我相信你应该看看在TCP或命名pipe道上提供RPC的dnode ,它有一个Ruby实现 。 使你很容易进行RPC调用,因为它是TCP,你可以使用它跨机器。
你也可以有一个这样的消息队列zeromq ,但我相信,将有不必要的开销。 如果你有两个以上的过程相互交谈,那么这将是件好事。
除了所有这些,如果你想要最小的延迟,如果你的进程都在一台机器上运行,我相信你应该使用命名pipe道和stdio进行通信,但我不知道节点中的任何模块将帮助你抽象,你必须在stdio上build立自己的RPC模块。
如果你使用的是redis,我最近写了一个redis_message_capsule:
- rubygem
- 节点npm包
去做这个。 随意尝试或修改它,只要你喜欢。