SignalR 停止后尝试连接

问题描述 投票:0回答:1

我在使用 signalR 时遇到了奇怪的行为。我仅在一个组件上使用它(我的 ui 上的 vue.js)。 当用户在被破坏的事件中导航到另一个页面(我有水疗应用程序)时,我试图关闭连接。我正在尝试两种选择:

JS: connection.stop();
BE: i catch disconnect message in public override Task OnDisconnectedAsync method

JS: connection.invoke('Resource', params);
BE: await Groups.RemoveFromGroupAsync(Context.ConnectionId, "<group name>");

连接已成功关闭,但在一段时间(约 15-20 秒)后,signalR 尝试再次连接到服务器(但该组件不存在于 elements 块中)。一段时间后连接恢复,但该组件不存在。如果我刷新我的 spa 页面(使用 F5)signalR 不会尝试连接,但如果我使用 signalR 打开组件,情况就会再次开始。

也许有人可以帮助我:

  1. 为什么会这样?
  2. 如何断开客户端和服务器的连接
javascript asp.net .net signalr
1个回答
0
投票

我找到了。我创建了一个空的断开处理程序并尝试捕获连接。

public override Task OnDisconnectedAsync(Exception? exception) { //breakpoint here; }

某些开发人员在应用程序上添加了另一个 SignalR 集线器(例如 UI 上的另一个组件),并且忘记在组件卸载时调用 close。

this.connection.stop()

所以,不要忘记停止 UI 和后端服务器之间的 SignalR 连接。

© www.soinside.com 2019 - 2024. All rights reserved.