无法与多个用户一起使用ASP.NET Core SignalR

时间:2019-01-10 10:26:41

标签: c# asp.net-core asp.net-core-mvc signalr azure-signalr

与1个以上的用户一起运行Azure SignalR时,我在聊天网站上遇到问题。例如

用户A登录到系统,可以正常发送/接收消息,用户B也登录并获得JavaScript错误。如果用户A关闭浏览器窗口,则用户B可以很好地发送/接收消息,反之亦然。

这是我正在使用的技术:

错误似乎来自SignalR Javascript客户端。

这是我收到的Google Chrome控制台错误消息:

enter image description here

我的JS代码如下:

function setChatConnection() {
    var chatConnection = new signalR.HubConnectionBuilder()
        .withUrl('/chat')
        .configureLogging(signalR.LogLevel.Information)
        .build();
    bindConnectionMessage(chatConnection);
    chatConnection.start()
        .then(function () {
             chatConnection.send('joingroup');
        })
        .catch(function (error) {
            console.error(error.message);
        });
}

我进行了一些调试,并且似乎在错误发生之前进入了chatConnection.send('joingroup')方法,尽管我认为这是一个红色的鲱鱼,我在集线器的OnConnectedAsync方法中添加了一些调试功能,并且可以确认它也不被调用。

我的集线器没有任何花哨的地方,我添加了一些日志记录,当第二个用户尝试使用聊天时,看起来集线器可能没有被呼叫

    public override Task OnConnectedAsync()
    {
        return base.OnConnectedAsync();
    }

    public async void JoinGroup()
    {
        await Groups.AddToGroupAsync(Context.ConnectionId, "Test");
    }

有人知道为什么会这样吗?我还尝试了升级到付费的Azure SignalR层,但是仍然遇到相同的问题。

0 个答案:

没有答案