Linux(Server)ホスト上の1つのアプリケーションが、VM内のWin7(Client)上のアプリケーションと通信するようにしたい。選択するLibはZeroMQです。しかし、非同期タスクを管理するにはどうすればよいですか?
例を挙げましょう。VM内のアプリケーションは、任意の間隔でタスクを生成し、それらをLinuxボックスに送信します。これはそれらを処理しますが、答えるのに少し時間が必要です。このとき、REQ / REPパターンのソケットはブロックされ、WinAppからの着信タスクをLinuxAppに転送することはできません。これをどのように解決すればよいですか?0MQがなくても、これは一般的にどのように解決されますか。サーバーとクライアントの両方を作成し、2つの接続を確立する必要がありますか?
要件:
- クライアントは独自のタスクジェネレータです。
- サーバーは、接続しているクライアントごとにワーカースレッドを作成します。
- サーバーは、クライアントとワーカースレッドの間に一意の接続を確立します。
- ->(1つのソケット上の各クライアントとワーカースレッドのペア間のREQ / REQ)
- サーバーは着信タスクを即座に転送する必要があります。
- サーバーは、複数のクライアント(したがって、WTへの接続)を処理できる必要があります。
したがって、REQ / REP / REQ / REP/...シーケンスを実現することはできません。