我有2个软件组合,我想互相交谈,
我想要的对话非常简单,
或
是否有任何无痛的方式在2?
之间传递消息我的理论观点目前正是如此:
效率非常低吗?
节点中是否有实际的线程支持? (一个简短的谷歌没有带来任何具体的结果)
答案 0 :(得分:4)
基本上你是在正确的方向,你需要某种过程间的沟通。这取决于你的IPC有多复杂。如果它只是调用方法并在方法之间共享简单(即整数,字符串)数据,那么你可以使用unix套接字,这些套接字很容易实现,并且本身由nodejs支持,并且很容易在C中使用好吧(因为所需的标题几乎总是可用的)
ZeroMQ为您提供传输抽象(允许IPC或真正的基于网络的传输)以及针对甚至模糊语言的大量绑定。 C和Node提供的示例应该让您立刻前进。但是,您需要相应的标头和库;最有可能需要先建立。
如果您要在程序之间交换的数据将更复杂(读取结构或数组,嵌套对象),那么您将需要一些真正的RPC实现。那里有一堆RPC实现;功能方面,Apache Thrift看起来很有希望,但最终我无法在合理的时间内构建thrift编译器。
所以最后,对于我来说,有一个相似的用例,我最终使用ZeroMQ进行传输抽象,最后使用JSON-RPC作为RPC机制。 JSON-RPC非常适用于nodejs,而C我使用https://github.com/pijyoi/jsonrpc,它基于ZeroMQ和Jansson构建。文件是不存在的,但如果你走得那么远,你就不应该害怕。
表现方面我不认为这会成为一个问题;你的用例听起来不会,就像你在很短的时间内有很多要求一样。由于ZeroMQ还提供传统的IPC作为传输,您也可以使用它来提高性能。