0

我创建 Hub 类,当新用户连接调用函数 OnConnected 时:

public class ReportChat : Hub
{
    public async Task OnConnected()
    {
        string name = Context.User.Identity.Name;
        await Groups.AddAsync(Context.ConnectionId, name);
    }
}

但是当连接第二个用户时,或者有时,当我刷新页面 SignalR 在前端生成错误:没有与该 ID 的连接。

使用传输协议:signalR.TransportType.LongPolling

connection = new signalR.HubConnection("/ReportJson", { transport: signalR.TransportType.LongPolling });
        connection.on('SendReport',
            function(data) {
                console.log(data.value.name);
            });
        connection.start().then(() => {
            connection.invoke('OnConnected');
            hubConnectionEstablished = true;
        });
4

1 回答 1

2

当您刷新页面时,您将断开连接并重新连接,因此将为该客户端生成一个新的 connectionId。您可以通过在 OnConnected 和 OnDisconnected 方法中设置断点来验证这是否正在发生。

于 2018-02-22T17:49:40.733 回答