【问题标题】:Multi client RPC多客户端 RPC
【发布时间】:2016-11-09 19:07:56
【问题描述】:
我有一个路由器、一个服务器和多个客户端。服务器在路由器中注册方法,客户端成功调用方法并得到结果。在某些情况下,我需要服务器向特定的客户询问一些事情。我已经有了使用WampInvocationContext.Current.InvocationDetails 的sessionId,但我不知道客户端需要如何注册他们的方法,也不知道如何从服务器调用它们。
我查看了文档,但没有运气。 wamp-proto 真的支持这样的事情吗?如果有,有什么指点吗?
【问题讨论】:
标签:
c#
crossbar
wamp-protocol
wampsharp
【解决方案1】:
如果我理解正确,您希望多个客户端注册同一个过程,然后调用其中的特定过程。
这在 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/