使用.net Core,并使用本教程https://docs.microsoft.com/en-us/aspnet/core/tutorials/signalr?view=aspnetcore-3.1&tabs=visual-studio进行了所有设置。
我希望能够根据本教程使用生命周期事件:https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client
但是我得到了
connection.stateChanged或connection.disconnected不是函数
var connection = new signalR.HubConnectionBuilder().withUrl("/chatHub").build();
connection.start().then(function () {
}).catch(function (err) {
return console.error(err.toString());
});
connection.stateChanged(function () {
console.log('in');
});
即使在客户端上,我也想检测到“ 已断开连接”。
答案 0 :(得分:1)
从HubConnectionState
的MS Doc来看,只有两种状态:
这些状态通过连接中的state属性公开,但是没有其他任何状态。
根据this github issue中anurse的说法,start
Promise可以让您知道连接何时开始,而closed
事件则可以告诉您连接已停止。它们没有自动重新连接,因此这是唯一的状态转换。
因此您可以使用上面Dennis1679所说的以下方法
connection.onclose(function(){
console.log('connecition closed');
});