我正在嘗試寫一個不會將消息發回給調用者的SignalR集線器。我實現了一個名爲「BatteryChanged」的處理程序,它在所有連接的客戶端中簡單地調用「onBatteryChanged」。我的理解是,我應該使用Others
過濾掉來電:如何使用ASP.NET SignalR獲得「其他」?
public class MyHub : Hub
{
public void BatteryChanged(double level)
{
Clients.Others.onBatteryChanged(level);
}
}
我的一個和唯一的客戶端(此測試至少)是初始化像這樣的連接WPF應用程序:
Connection = new HubConnection(ServerURI);
HubProxy = Connection.CreateHubProxy("myHub");
// set up SignalR handlers
HubProxy.On<double>("onBatteryChanged", (battery) =>
{
// do something with the message here
});
一旦連接已經建立我的WPF客戶端調用輪轂上的方法:
this.HubProxy.Invoke("BatteryChanged", level);
出於某種原因,這並不工作,郵件到達上集線器並被分派給客戶端。其他但調用客戶端中的onBatteryChanged處理程序也被調用。
誰能告訴我如何讓SignalR正確地過濾消息?