使用指定的Id signalR将数据从服务器推送到客户端

时间:2013-05-23 09:10:41

标签: signalr

我收到了来自不同服务器的数据到我的Hub类。每个数据都有自己的ID。每当数据进入服务器中心时,它就会将我的数据推送到客户端。这就像工作进展一样。 我想将每个ID发送到具有唯一集线器ID的客户端。如何从服务器过滤消息?我用这种方式Clients.Client("ID1").send(data);或者我必须在调用者属性中指定?任何人都可以帮助我。

关心, Shanthini

1 个答案:

答案 0 :(得分:3)

您可以使用ConnectionId来识别客户端。

连接新客户端时,将ConnectionId存储在某处,以便以后可以使用它来识别客户端。

public class MyHub : Hub
{
    public override Task OnConnected()
    {
        var connectionId = Context.ConnectionId;
        // store connectionId somewhere
        return base.OnConnected();
    }
}

要将数据发送到客户端,请按ConnectionId

进行识别
public void SendNewData(string connectionId, object data)
{
    var Context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
    Context.Clients.Client(connectionId).send(data);
}

如果您需要通过其他ID识别客户,那么您应该存储您的ID与ConnectionId之间的关系。