zeromq ガイドにある majordomo C コードの一部を理解できません。ワーカーがリクエストに応答するとき、正しいクライアントにどのようにルーティングされますか。リクエストがワーカーに送信されたときに、クライアント ID がどのように伝達されているかを確認できません。そのため、返信が適切にルーティングされる方法を理解できません。ワーカーにメッセージを送信する mdbroker.c の関数を次に示します。
static void
s_worker_send (worker_t *self, char *command, char *option, zmsg_t *msg)
{
msg = msg? zmsg_dup (msg): zmsg_new ();
// Stack protocol envelope to start of message
if (option)
zmsg_pushstr (msg, option);
zmsg_pushstr (msg, command);
zmsg_pushstr (msg, MDPW_WORKER);
// Stack routing envelope to start of message
zmsg_wrap (msg, zframe_dup (self->identity));
if (self->broker->verbose) {
zclock_log ("I: sending %s to worker",
mdps_commands [(int) *command]);
zmsg_dump (msg);
}
zmsg_send (&msg, self->broker->socket);
}
ID とルーター ソケットがどのように機能するかを理解していない可能性があります。どんな助けでも大歓迎です。私はまだここで立ち往生しています..