用户登录应用程序并启动连接,如果连接丢失,则注册处理程序以重新启动 SignalR
连接,如下所示:
connection.onclose(this.restartConnection);
我查看了 HubConnection.ts
,并没有找到任何删除 onclose
处理程序的选项。它不能被替换为空方法,因为它存储了所有已注册的方法。然后唯一的选择是通过以下方式删除自定义处理程序:
connection.off('methodName');
当用户注销时,应用程序停止 SignalR
连接,这将不可避免地触发 onclose
处理程序,对我来说会产生错误。我想取消注册处理程序,这样连接在应用程序有意停止之后将不会尝试重新启动。
我考虑使用一个标志来确定是否应该尝试重新启动连接,但这似乎不太合适。是否有一个正确的解决方案呢?