【问题标题】:Call SignalR Client Method on Startup在启动时调用 SignalR 客户端方法
【发布时间】:2016-07-26 02:27:17
【问题描述】:

我只想在客户端首次加载网页时从我的 SignalR 集线器类调用客户端方法一次。我该怎么做呢?

【问题讨论】:

    标签: signalr signalr-hub signalr.client


    【解决方案1】:

    在您的BlahBlahHub 类中,您可以访问您在客户端上执行的所有连接方法。提示:查看Hub 基类。

    话虽如此,代码如下所示:

    集线器

    [HubName("messageHub")]
        public class MessageHub : Hub
        {
            public override Task OnConnected()
            {
                Clients.Caller.alertUser(88);
    
                return base.OnConnected();
            }
        }
    

    客户

    var sender = $.connection.messageHub;
    
    $.connection.hub.start().done(function () {
    
    }).fail(function (reason) {
        console.log("SignalR connection failed: " + reason);
    });
    
    sender.client.alertUser = function (test) {
        alert(test);
    };
    

    【讨论】:

    • public override Task OnConnected() 只会在用户初始连接时调用?
    • “最初”连接是什么意思?你试过代码吗?它适用于您的场景吗?
    • 所以有两种方法可以解释您的请求。当用户与 SignalR 集线器建立连接时,或仅当新用户(也就是以前从未连接到集线器的用户)连接到集线器时。在这种情况下,您可能需要一种与 Redis/Service Bus/SQL Server 集成的方法来识别用户的连接。
    • 我的意思是当用户与 SignalR Hub 建立连接时,我想通了,谢谢大家
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多