2016-11-09 7 views
1

私はルータ、サーバ、複数のクライアントを持っています。サーバはルータにメソッドを登録し、クライアントはメソッドを正常に呼び出して結果を取得します。場合によっては、サーバーに特定のクライアントに何か質問する必要があります。私はすでにWampInvocationContext.Current.InvocationDetailsを使ってsessionIdを持っていますが、クライアントがどのようにメソッドを登録する必要があるのか​​、サーバーから呼び出す方法はわかりません。マルチクライアントRPC

私はドキュメントを見ましたが、運がありませんでした。 wamp-protoは実際にそのようなことをサポートしていますか?もしそうなら、どんな指針を持っていますか?

答えて

3

私が正しく理解していれば、複数のクライアントが同じ手順を登録して、それらの中から特定のものを呼び出すことを望みます。

これは、手順に同じURIを使用するWAMPでは不可能です。

あなたのやりたいことは、クライアントIDを含むURIを使用することです。プロシージャが "com.example.calculate_load"の場合、クライアントは "com.example.client_1.calculate_load"(または "com.example.calculate_load.client_1")を登録し、プロシージャURIを介してクライアントのアドレスを指定します。

複数のクライアントが同じURIを使用して同じ手順を登録することは可能ですが、これは手順のスケールアウトやホットスタンバイを目的としています。ルータは、クライアントが登録された共通の戦略(例えば、ラウンドロビン)に基づいて、どのクライアントを呼び出すかを決定する。 http://crossbar.io/docs/Shared-Registrations/

関連する問題