【问题标题】:Reconnect SignaR client on page refresh?在页面刷新时重新连接 SignalR 客户端?
【发布时间】:2017-12-26 16:48:04
【问题描述】:

在我的场景中,我使用 SignalR 进行登录。

如果用户一使用用户名“abc”登录,用户二使用用户名“abc”登录,用户一将被踢出并重定向两个登录页面。

但是如果用户一登录并刷新页面,然后用户二尝试登录用户一将不会被踢。因为在刷新用户一时失去了连接。我尝试了很多解决方案,例如尝试在断开连接事件时重新连接,但它不起作用。

有人可以帮忙吗?

【问题讨论】:

  • 什么不起作用?
  • 页面刷新后,我失去了与客户端的连接。并且无法从我的 Hub 调用客户端方法。
  • 您能否分享 Hub 内的代码以及您尝试过的解决方案链接。我需要它来帮助您确定确切的解决方案。
  • 如果您希望两个用户都登录,那么不要使用用户名作为标识符,为每个会话生成 GUID 并将其用于日志记录

标签: javascript c# .net signalr


【解决方案1】:

客户端断开连接场景

在浏览器客户端中,维护 SignalR 连接的 SignalR 客户端代码在网页的 JavaScript 上下文中运行

当用户关闭浏览器窗口或选项卡,或导航到新页面或刷新页面时,SignalR 连接会立即结束,因为 SignalR 客户端代码会为您处理该浏览器事件并调用 Stop 方法。在这些场景中,或者在任何客户端平台上,当您的应用程序调用 Stop 方法时,OnDisconnected 事件处理程序会立即在服务器上执行,并且客户端会引发 Closed 事件(该事件在 JavaScript 中被命名为 disconnected)

Disconnection Scenarios(Client & Server)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多