【发布时间】:2017-04-26 06:41:40
【问题描述】:
我正在尝试编写一个不会将消息 ping 回调用者的 SignalR 集线器。我已经实现了一个名为“BatteryChanged”的处理程序,它只是在所有连接的客户端中调用“onBatteryChanged”。我的理解是应该使用Others来过滤掉调用者:
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);
由于某种原因,这不起作用,消息到达集线器并被分派给 Clients.Others,但调用客户端中的 onBatteryChanged 处理程序也会被调用。
谁能告诉我如何让 SignalR 正确过滤消息?
【问题讨论】:
标签: signalr