Signalr 我怎样才能得到;“其他”;使用ASP.NET信号器?

Signalr 我怎样才能得到;“其他”;使用ASP.NET信号器?,signalr,Signalr,我正在尝试编写一个不会将消息ping回呼叫方的信号集线器。我已经实现了一个名为“BatteryChanged”的处理程序,它在所有连接的客户端中只调用“onBatteryChanged”。我的理解是,我应该使用Others过滤掉呼叫者: public class MyHub : Hub { public void BatteryChanged(double level) { Clients.Others.onBatteryChanged(level); }

我正在尝试编写一个不会将消息ping回呼叫方的信号集线器。我已经实现了一个名为“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
});
由于某些原因,这不起作用,消息到达集线器并发送到客户端。除了调用客户端中的onBatteryChanged处理程序之外,其他处理程序也会被调用


有人能告诉我如何让信号器正确过滤信息吗?

对于将来偶然发现这一点的其他人来说,问题显然是术语问题。具体来说,我的hub函数包含一个名为“BatteryChanged”的方法,该方法在客户端中调用一个名为“onBatteryChanged”的方法。似乎信号器内部正在发生一些事情,它们将“BatteryChanged”方法前缀为“on”,这会造成命名冲突。只需将“onBatteryChanged”函数的名称更改为“handleBatteryChanged”即可解决此问题

this.HubProxy.Invoke("BatteryChanged", level);