【发布时间】:2015-05-14 17:26:24
【问题描述】:
我的集线器内部有一个方法,用于向特定客户发送票证已更新。但是我希望它把它发送到控制器内部的服务器和特定的用户,你可以在下面看到我是怎么做的:
我正在使用以下方法发送给特定的客户:
public void NotifyUpdatedTicket(Ticket ticket, string note, params string[] aliases)
{
foreach (string a in aliases)
{
foreach (string connectionId in _allConnections.GetConnections(a))
{
Clients.Client(connectionId).notifyUpdatedTicket(ticket, note);
}
}
}
_allConnections 与http://www.asp.net/signalr/overview/guide-to-the-api/mapping-users-to-connections#inmemory 中的类相同
但是,我没有传递 1 个用户,而是传递了一个别名列表,然后获取他们的连接并发送到他们的连接 ID。
但是它似乎没有正确发送它发送给所有客户端。这是我用来调用控制器中的方法的命令:
GlobalHost.ConnectionManager.GetHubContext<TicketHub>().Clients.All.notifyUpdatedTicket(viewModel.Current, viewModel.NewNote, viewModel.Current.OpenedBy, viewModel.Current.AssignedTo);
当我发送带有特定 OpenedBy 和 AssignedTo 的上述命令时,它会在不应该发送给所有用户。
我是否错过了在控制器中调用它只将它发送给特定用户或其他东西的东西?
即使我将个人别名直接输入到集线器方法中,它仍然会发送给每个人。我认为这与控制器方法有关。
【问题讨论】:
-
没人知道吗?
标签: c# asp.net-mvc signalr signalr-hub