使用SignalR核心中的组

时间:2018-02-22 13:11:33

标签: signalr signalr.client asp.net-core-signalr signalr-2

当新用户连接呼叫功能OnConnected:

时,我创建了Hub类
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;
        });

1 个答案:

答案 0 :(得分:2)

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