【问题标题】:Hub not start in signal r集线器未在信号 r 中启动
【发布时间】:2017-08-03 21:34:31
【问题描述】:

我是新的 Signal r。我正在尝试在 mvc 聊天室应用程序中使用它。 问题是我的集线器不是为所有用户启动的。我只为一位用户找到警报。 还有一件事是。这是在新标签中打开的。

$(function () {
            // Reference the auto-generated proxy for the hub.
            var chat = $.connection.chatHub;

            chat.client.UserStatus = function (newUserId) {       
                alert('New User Comes');
            };


            $.connection.hub.start().done(function () {
                 alert('Hub starts');
            });
        });

alert('Hub starts') 仅适用于管理员用户,而其他用户不会出现此警报。

【问题讨论】:

  • 非管理员用户的控制台中是否有任何错误?

标签: c# asp.net-mvc-4 signalr signalr-hub signalr.client


【解决方案1】:

您是否尝试将.fail 添加到start 返回的延迟?

        $.connection.hub.start().done(function () {
             alert('Hub starts');
        }).fail(function (e) {
             alert('There was an error');
             console.error(e);
        });

.done函数只有在.start成功时才会被调用,所以出错时会被跳过。拥有.fail 函数将使您有机会处理任何错误。

【讨论】:

    【解决方案2】:

    为了将来到达这里的任何人的利益,我发现CodingWithSpike 建议的.fail 函数没有向控制台打印任何内容。

    我在调用.start()之前添加了以下内容:

    $.connection.hub.error(function(err){
        console.log(err);
    });
    

    (在我的例子中,它打印了 You are using a version of the client that isn't compatible with the server. Client version 1.5, server version 1.4.,因为我使用 CDN 加载最新的 jQuery 和 SignalR,而这些与我添加到我的解决方案中的 SignalR 库不兼容。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多