シナリオは次のとおりです。
- 2 つの ZMQ_ROUTER ソケット、A および B。
- はアドレスにバインドされ、ID が割り当てられます。
- B はアドレスにバインドし、ID を割り当てられ、A にも接続します。
- 彼らはしばらく話しますが、すべて問題ありません。
- 意図的に B ソケットを閉じます。
- B ソケットは、以前と同じ ID が割り当てられ、すべて同じパラメーターを使用して再度開かれ、再バインドされ、再接続されます。
- B が A にメッセージを送信します。
- A さんにはメッセージが表示されません。ただし、tcpdump の出力に B のメッセージがあることに気付きました (tcpdump は A のポートのすべてのトラフィックを監視しています)。
これにより、何らかの理由で zmq が B の 2 番目のメッセージを削除したと思われます。ここで何が起こっているのか誰か説明できますか?