2010-12-06 9 views
6

私はZeromqドキュメントの「要求 - 応答ブローカー」に参照のうえだ:http://zguide.zeromq.org/chapter:all誰でもリクエストリプライブローカのzeromqの例を説明できますか?

私はアプリの一般的な要点を取得しています:それは、クライアントからサーバーへの仲介とルートのメッセージのような役割を果たしそしてもう一度戻る。それは、サーバからの正しい応答が当初要求を行った正しいクライアントに送信されますを確認しますか

は何私も届かないことです。私はこのことを確認するコード例で何も見ていない。

ここでは、1つのメッセージ(hello)と1つのレスポンス(world)しか送信しないので、メッセージが混在しても問題はありませんが、testclientとサーバーは意図的に単純。チャプター3のそれらはすべてで[OK]を

任意の考えは歓迎されている...

答えて

9

すべてzeromqソケットは、暗黙のうちにそれらに関連付けられているアイデンティティーを持っています。 zmq_getsockopt()でこのIDを取得できます。

XREQまたはXREPではなく双方向ソケットタイプの場合、このIDはソケットを介して送信されるすべてのメッセージの一部として自動的に転送されます。 REPソケットはこのIDを使用して、応答メッセージを適切なソケットに戻します。これは自動配線の影響を受けます。ボンネットの下に

、アイデンティティはマルチパートメッセージを介して転送されます。マルチパートメッセージの最初のメッセージには、ソケットIDが入ります。空のメッセージが続き、その後にユーザーが指定したすべてのメッセージが続きます。 REQソケットとREPソケットは、これらのプレフィックス付きメッセージを自動的に処理します。ただし、XREQまたはXREPソケットを使用している場合は、これらの身元確認メッセージを自分で入力する必要があります。

あなたはZMQ Guideの「アイデンティティ」を検索すると、あなたが今までにアイデンティティとソケットが作品をルーティングする方法を知りたいでしょうすべての詳細を見つける必要があります。

1

突然REQ/RESPパターンがinvisubly使用する「封筒」の基本的な概念があることを説明しています。

これはどのように動作するかについて説明します。