【问题标题】:SignalR Hub Sending signal to Specific clientSignalR Hub 向特定客户端发送信号
【发布时间】:2017-01-25 18:45:00
【问题描述】:

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

假设我在页面 .../Customers/Detail/597 上并更新它。

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

目前,即使其他用户在不同的页面上,例如.../Customers/Detail/687,他们仍然会收到警报消息。

【问题讨论】:

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


    【解决方案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
        }
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多