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