SignalR Hub向特定客户端发送信号

时间:2017-01-25 18:45:01

标签: javascript asp.net asp.net-mvc razor signalr-hub

我正在尝试向当前与更新程序位于同一URL的其他用户发送警报消息。

请说我在页面.../Customers/Detail/597并更新它。

页面重新加载后,我想向当前位于同一页面的用户发送信号(.../Customers/Detail/597)

目前,即使其他用户位于.../Customers/Detail/687之类的其他网页上,他们仍会收到提醒信息。

2 个答案:

答案 0 :(得分:1)

您可以使用页面ID作为名称创建一个组。然后,您只能向与页面ID关联的组发送消息。

https://www.asp.net/signalr/overview/guide-to-the-api/hubs-api-guide-server#groupsfromhub

答案 1 :(得分:1)

这可以使用

之类的东西来完成

在你的asp.net mvc端(你发送消息的地方)

IHubContext hubContext = GlobalHost.ConnectionManager.GetHubContext<Hub>();
hubContext.Clients.All.NotifyUser(id, message);

并在您的javascript中(您接受的地方)

//you must have that Id (from URL) in your javascript too so you can check if user is currently on that spage
var id = ...; 
hub.client.NotifyUser = function(serverId, message) {

    if(id == serverId)
    {
        //do something with the message
    }
}