2016-11-09 216 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/