[英]Inter-process communication between node and C application
我有2個軟件組合我想互相交談,
我想要的對話非常簡單,
要么
是否有任何無痛的方式在2之間傳遞消息?
我的理論觀點目前是這樣的:
這非常低效嗎?
節點中是否有實際的線程支持? (一個簡短的谷歌沒有帶來任何具體的結果)
基本上你是在正確的方向,你需要某種進程間的通信。 這取決於你的IPC有多復雜。 如果它只是調用方法並在方法之間共享簡單(即整數,字符串)數據,那么你可以使用unix套接字,這些套接字很容易實現,並且本身由nodejs支持,並且很容易在C中使用好吧(因為所需的標題幾乎總是可用的)
ZeroMQ為您提供傳輸抽象(允許IPC或真正的基於網絡的傳輸)以及針對甚至模糊語言的大量綁定。 C和Node提供的示例應該讓您立刻前進。 但是,您需要相應的標頭和庫; 最有可能需要先建立。
如果您要在程序之間交換的數據將更復雜(讀取結構或數組,嵌套對象),那么您將需要一些真正的RPC實現。 那里有一堆RPC實現; 功能方面,Apache Thrift看起來很有希望,但最終我無法在合理的時間內構建thrift編譯器。
所以最后,對於我來說,有一個相似的用例,我最終使用ZeroMQ進行傳輸抽象,最后使用JSON-RPC作為RPC機制。 JSON-RPC非常適用於nodejs,而CI則使用https://github.com/pijyoi/jsonrpc ,它基於ZeroMQ和Jansson構建。 文檔是不存在的,但如果你走得那么遠,你不應該害怕。
性能方面我不認為這會成為一個問題; 你的用例聽起來不會,就像你在很短的時間內有很多要求一樣。 由於ZeroMQ還提供傳統的IPC作為傳輸,您也可以使用它來提高性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.