2010-12-06 61 views
6

我指的的Zeromq文檔中的「請求 - 應答經紀人:http://zguide.zeromq.org/chapter:all任何人都可以解釋請求 - 答覆經紀人zeromq示例?

我得到了應用程序的一般要點是:它就像從客戶的中介和消息路由到服務器然後再回來。

我不明白的是它如何確保服務器的正確響應被髮送到最初發出請求的正確客戶端。我沒有看到代碼示例中的任何內容確保了這一點。

現在在這個例子中,他們只發送1條消息(hello)和1個響應(world),所以即使消息混淆了也沒有關係,但我猜測testclient和服務器是故意保持簡單。

有什麼想法,歡迎...

回答

9

所有的zeromq套接字都隱含有一個與它們相關的標識。 (您可以通過zmq_getsockopt()獲得此身份。)

對於雙向套接字類型而非XREQ或XREP,此標識將自動作爲通過套接字發送的每條消息的一部分進行傳輸。 REP套接字使用此標識將響應消息路由回合適的套接字。這具有自動路由的效果。

在引擎蓋下,身份通過多部分信息傳輸。多部分消息中的第一條消息將包含套接字標識。隨後會出現一條空的消息,隨後是用戶指定的所有消息。 REQ和REP套接字自動處理這些前綴消息。但是,如果您使用的是XREQ或XREP套接字,則需要自己填充這些身份信息。

如果您在ZMQ Guide上搜索「身份」,您應該找到關於身份和套接字路由如何工作的所有細節。

1

在第3章,他們所有的好突然解釋說,有一個「信封」,其中請求/ RESP模式invisubly使用的基本概念。

這解釋了它是如何工作的。

相關問題