【发布时间】:2013-05-24 21:42:04
【问题描述】:
我从不同的服务器接收到我的 Hub 类的数据。每个数据都有自己的 ID。每当数据到达服务器集线器时,它都会将我的数据推送到客户端。这就像工作进度。
我想将每个 ID 发送到具有唯一集线器 ID 的客户端。如何过滤来自服务器的消息?我用这种方式Clients.Client("ID1").send(data); 或者我必须在调用者属性中指定?任何人都可以帮助我。
问候, 山提尼
【问题讨论】:
标签: signalr
我从不同的服务器接收到我的 Hub 类的数据。每个数据都有自己的 ID。每当数据到达服务器集线器时,它都会将我的数据推送到客户端。这就像工作进度。
我想将每个 ID 发送到具有唯一集线器 ID 的客户端。如何过滤来自服务器的消息?我用这种方式Clients.Client("ID1").send(data); 或者我必须在调用者属性中指定?任何人都可以帮助我。
问候, 山提尼
【问题讨论】:
标签: signalr
您可以使用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之间的关系。
【讨论】: