2016-11-09 86 views
1

我有一个路由器,一台服务器和多个客户端。服务器在路由器中注册方法,客户端成功调用方法并获得结果。在某些情况下,我需要服务器向特定客户端询问一些事情。我已经有sessionId使用WampInvocationContext.Current.InvocationDetails,但我不知道客户端如何注册他们的方法,也不知道如何从服务器调用它们。多客户端RPC

我查看了文档,但没有运气。 wamp-proto实际上是否支持这样的事情?如果是这样,有什么建议?

回答

3

如果我理解正确,您希望多个客户端注册相同的过程,然后调用其中特定的一个。

这对于WAMP使用相同的URI进行操作是不可能的。

对于你想要做的,预期的方法是使用包含客户端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/