Is it possible to catch signalR connection disconnect event? Error: Connection disconnected with error webSocket closed with status code: 1006
Is it possible to catch signalR connection disconnect event? Error: Connection disconnected with error webSocket closed with status code: 1006
我正在使用 signalR v.1.1.2 https://github.com/aspnet/SignalR#readme(是的,已经过时了)
我已经成功初始化并启动了 signalR 连接。
几分钟后,连接断开,我在控制台中记录了这个恼人的、犹豫不决的错误,它是由 signalR 的内部库触发的。
Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ()'
我的目标是通过适当的事件侦听器捕获此错误并立即重新连接或通过重试连接模式弹出窗口通知用户。我只是无法捕捉信号器关闭事件。我错过了什么吗?
我非常绝望,以至于我写了 20 种方法来捕捉这个,但其中 none 对我有用。我确定这些方法绑定到我设置的连接实体和 运行。顺便说一句,关于连接生命周期的 signalR 文档页面,也不适合我 https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/handling-connection-lifetime-events#how-to-notify-the-user-about-disconnections
欢迎任何帮助或建议。
提前致谢。
None 这些作品:
console.log("disconnected inline cb")
})
connection.connectionSlow((resp) => {
console.log("connectionSlow inline cb")
})
connection.onclose((resp) => {
console.log("onclose inline cb")
})
connection.close((resp) => {
console.log("close inline cb")
})
connection.on('Disconnected', (resp) => {
console.log("camelCase Disconnected inline cb")
})
connection.on('ConnectionSlow', (resp) => {
console.log("camelCase ConnectionSlow inline cb")
})
connection.on('OnClose', (resp) => {
console.log("camelCase OnClose inline cb")
})
connection.on('Close', (resp) => {
console.log("camelCase Close inline cb")
})
connection.on('disconnected', (resp) => {
console.log("lowercase Disconnected inline cb")
})
connection.on('connectionSlow', (resp) => {
console.log("lowercase ConnectionSlow inline cb")
})
connection.on('connectionslow', (resp) => {
console.log("lowercase 2 Connectionslow inline cb")
})
connection.on('close', (resp) => {
console.log("lowercase close inline cb")
})
connection.on('onClose', (resp) => {
console.log("lowercase OnClose inline cb")
})
connection.on('onclose', (resp) => {
console.log("lowercase 2 Onclose inline cb")
})
connection.connection.disconnected((resp) => {
console.log("connection.connection disconnected inline cb")
})
connection.connection.onclose((resp) => {
console.log("connection.connection onclose inline cb")
})
connection.connection.connectionSlow((resp) => {
console.log("connection.connection connectionSlow inline cb")
})
connection.connection.close((resp) => {
console.log("connection.connection close inline cb")
})
connection.connection.on('close', (resp) => {
console.log("connection.connection lowercase close cb")
})
connection.connection.on('Close', (resp) => {
console.log("connection.connection camelcase close cb")
})
connection.connection.on('disconnected', (resp) => {
console.log("connection.connection disconnected inline cb")
})
connection.connection.on('onclose', (resp) => {
console.log("connection.connection onclose inline cb")
})
connection.connection.on('onClose', (resp) => {
console.log("connection.connection lowercase onclose inline cb")
})
connection.connection.on('connectionSlow', (resp) => {
console.log("connection.connection lowercase connectionSlow inline cb")
})
connection.connection.on('connectionslow', (resp) => {
console.log("connection.connection lowercase2 connectionSlow inline cb")
})
connection.connection.on('Disconnected', (resp) => {
console.log("connection.connection camelCase disconnected inline cb")
})
connection.connection.on('OnClose', (resp) => {
console.log("connection.connection camelCase onclose inline cb")
})
connection.connection.on('ConnectionSlow', (resp) => {
console.log("connection.connection camelCase connectionSlow inline cb")
})```
强烈建议您至少达到 v2.x。这可能是较新的文档无法帮助您的部分原因。
你可以看到我的回答here on SO。
从本质上讲,这会让您捕捉到断开连接事件,如果您愿意,可以弹出一个模式(您必须对其进行编码),然后在 5 秒后重新连接。
几个小时后,我们解决了问题。
我们所做的是将 "close, disconnect..." 事件与 .on
符合文档的语法绑定。
然而,对我们有用的是明确声明 .onclose
事件有界到 connectionHub 的连接对象,以便通过 signalR 内部 http 连接库在错误时成功触发此函数。
connection.connection.onclose = (error) => {
console.log(error)
}
我正在使用 signalR v.1.1.2 https://github.com/aspnet/SignalR#readme(是的,已经过时了) 我已经成功初始化并启动了 signalR 连接。 几分钟后,连接断开,我在控制台中记录了这个恼人的、犹豫不决的错误,它是由 signalR 的内部库触发的。
Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ()'
我的目标是通过适当的事件侦听器捕获此错误并立即重新连接或通过重试连接模式弹出窗口通知用户。我只是无法捕捉信号器关闭事件。我错过了什么吗?
我非常绝望,以至于我写了 20 种方法来捕捉这个,但其中 none 对我有用。我确定这些方法绑定到我设置的连接实体和 运行。顺便说一句,关于连接生命周期的 signalR 文档页面,也不适合我 https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/handling-connection-lifetime-events#how-to-notify-the-user-about-disconnections
欢迎任何帮助或建议。 提前致谢。
None 这些作品:
console.log("disconnected inline cb")
})
connection.connectionSlow((resp) => {
console.log("connectionSlow inline cb")
})
connection.onclose((resp) => {
console.log("onclose inline cb")
})
connection.close((resp) => {
console.log("close inline cb")
})
connection.on('Disconnected', (resp) => {
console.log("camelCase Disconnected inline cb")
})
connection.on('ConnectionSlow', (resp) => {
console.log("camelCase ConnectionSlow inline cb")
})
connection.on('OnClose', (resp) => {
console.log("camelCase OnClose inline cb")
})
connection.on('Close', (resp) => {
console.log("camelCase Close inline cb")
})
connection.on('disconnected', (resp) => {
console.log("lowercase Disconnected inline cb")
})
connection.on('connectionSlow', (resp) => {
console.log("lowercase ConnectionSlow inline cb")
})
connection.on('connectionslow', (resp) => {
console.log("lowercase 2 Connectionslow inline cb")
})
connection.on('close', (resp) => {
console.log("lowercase close inline cb")
})
connection.on('onClose', (resp) => {
console.log("lowercase OnClose inline cb")
})
connection.on('onclose', (resp) => {
console.log("lowercase 2 Onclose inline cb")
})
connection.connection.disconnected((resp) => {
console.log("connection.connection disconnected inline cb")
})
connection.connection.onclose((resp) => {
console.log("connection.connection onclose inline cb")
})
connection.connection.connectionSlow((resp) => {
console.log("connection.connection connectionSlow inline cb")
})
connection.connection.close((resp) => {
console.log("connection.connection close inline cb")
})
connection.connection.on('close', (resp) => {
console.log("connection.connection lowercase close cb")
})
connection.connection.on('Close', (resp) => {
console.log("connection.connection camelcase close cb")
})
connection.connection.on('disconnected', (resp) => {
console.log("connection.connection disconnected inline cb")
})
connection.connection.on('onclose', (resp) => {
console.log("connection.connection onclose inline cb")
})
connection.connection.on('onClose', (resp) => {
console.log("connection.connection lowercase onclose inline cb")
})
connection.connection.on('connectionSlow', (resp) => {
console.log("connection.connection lowercase connectionSlow inline cb")
})
connection.connection.on('connectionslow', (resp) => {
console.log("connection.connection lowercase2 connectionSlow inline cb")
})
connection.connection.on('Disconnected', (resp) => {
console.log("connection.connection camelCase disconnected inline cb")
})
connection.connection.on('OnClose', (resp) => {
console.log("connection.connection camelCase onclose inline cb")
})
connection.connection.on('ConnectionSlow', (resp) => {
console.log("connection.connection camelCase connectionSlow inline cb")
})```
强烈建议您至少达到 v2.x。这可能是较新的文档无法帮助您的部分原因。
你可以看到我的回答here on SO。
从本质上讲,这会让您捕捉到断开连接事件,如果您愿意,可以弹出一个模式(您必须对其进行编码),然后在 5 秒后重新连接。
几个小时后,我们解决了问题。
我们所做的是将 "close, disconnect..." 事件与 .on
符合文档的语法绑定。
然而,对我们有用的是明确声明 .onclose
事件有界到 connectionHub 的连接对象,以便通过 signalR 内部 http 连接库在错误时成功触发此函数。
connection.connection.onclose = (error) => {
console.log(error)
}