1

运行 Azure SignalR 的用户超过 1 个时,我的聊天网站出现问题。例如

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

这是我正在使用的技术:

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

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

在此处输入图像描述

我的 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 层,但仍然遇到同样的问题。

4

0 回答 0