我是javascript,Node.js和0MQ的新手,所以n00b * 3在這裏。0MQ req在Node.js等待代表
我想設置一個簡單的請求和回覆,但我希望客戶端在發送下一個請求之前等待響應。
該zguide克服了這一點,但Node.js版本不像C版本(這是我想要的)。
我意識到我在對待這個問題的模式轉變,但我仍然覺得我應該能夠做到這一點。我可以在客戶端撥打(或類似的)recv
嗎?
我是javascript,Node.js和0MQ的新手,所以n00b * 3在這裏。0MQ req在Node.js等待代表
我想設置一個簡單的請求和回覆,但我希望客戶端在發送下一個請求之前等待響應。
該zguide克服了這一點,但Node.js版本不像C版本(這是我想要的)。
我意識到我在對待這個問題的模式轉變,但我仍然覺得我應該能夠做到這一點。我可以在客戶端撥打(或類似的)recv
嗎?
如果你是對的,ZMQ的node.js版本的行爲不符合你對C版本的期望,但它實際上是是根據規則行事,它是隻是加入一點點自己的醬汁混合。
具體來說,如果您嘗試打破嚴格的REQ/REP/REQ/REP循環,則C綁定會引發錯誤。在node.js中,它將緩存亂序消息,直到前一個響應返回,然後然後發出該新消息...所以你仍然按順序獲得REQ/REP/REQ/REP ,並且您可以選擇隨時發送消息而不出錯。
這可能是節點ZMQ綁定作者方面糟糕的設計選擇,首先是因爲它讓新用戶感到困惑,比如你自己,其次,如果你使用REQ/REP,你可能會如果發生故障,請選擇硬故障,否則您將使用不同的套接字類型。
[Here's](https://github.com/JustinTulloss/zeromq.node/issues/259#issuecomment-30026059)我在節點ZMQ綁定頁面上的對話中找到了它,它可能會提供一些額外的上下文。 – Jason
您是否可以擴展您的客戶在下一個請求之前需要等待響應的意思?如果你在談論HTTP請求,你應該記住HTTP請求無論是平臺/語言都是無狀態的。如果您只想確保同一客戶端在收到第一個請求之前不發送兩個請求,只需使用IP/origin/cookie過濾請求(即:以任何方式區分客戶端)。 – Bwaxxlo
我正在使用它進行進程間通信。具體來說,我有一個進程收集數據,並且希望在從網絡發送聚合數據之前從其他進程獲取數據。我不想將數據發送出網絡,直到我從其他進程收到回覆,並且獲得了所有數據。 – Coop