当新用户连接呼叫功能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;
});
答案 0 :(得分:2)
当您刷新页面时,您正在断开连接并重新连接,因此将为该客户端生成新的connectionId。 您可以通过在OnConnected和OnDisconnected方法中设置断点来验证是否发生了这种情况。