【问题标题】:Reconnect to groups upon reconnection in SignalR in ASP.NET Core在 ASP.NET Core 中的 SignalR 中重新连接时重新连接到组
【发布时间】:2021-01-09 14:44:40
【问题描述】:

我有几个与 ASP.NET Core 中可用的 SignalR 相关的问题。作为 SignalR 的新手,我对这些问题不太自信:

  • 根据此article 组重新加入在 ASP.NET SignalR 中是可能的。 ASP.NET Core 附带的 SignalR 中是否也提供相同的行为?
  • 如果客户端必须重新连接到 SignalR 集线器,Context.ConnectionId 是否保持不变(这里的重新连接是指刚刚从非活动连接中恢复,而不是更改为新网站)?

配置:

我正在使用 ASP.NET Core 3.1 和随附的 SignalR 服务器版本 3.1.0。对于客户端,我使用了 2 种客户端:.NET Core SignalR 客户端 3.0 版和 Javascript 客户端 3.1.8。

【问题讨论】:

  • Does Context.ConnectionId remain same if the client has to reconnect to SignalR hubthis doc 中,您可以发现: 如果客户端在前四次尝试内成功重新连接,则 HubConnection 将转换回 Connected 状态并触发其 onreconnected 回调。由于连接对服务器来说是全新的,因此将向 onreconnected 回调提供一个新的 connectionId。

标签: asp.net-core asp.net-core-signalr


【解决方案1】:

所以在此期间我自己也在做一些研究,并认为这篇文章可能对某些人有所帮助。

根据这篇文章,在 ASP.NET SignalR 中可以重新加入组。 ASP.NET Core 附带的 SignalR 中是否也提供相同的行为?

不,当您在 ASP.NET Core SignalR 中重新连接时,不会保留组成员身份。检查这个link

如果客户端必须重新连接到 SignalR 集线器,Context.ConnectionId 是否保持不变(这里的重新连接是指刚刚从非活动连接中恢复,而不是更改为新网站)?

否,因为连接对于 SignalR 服务器来说是全新的,因此会生成一个新的 connectionId。这可能是因为客户端实例化了一个新的协商调用,从而产生了一个新的 connectionId。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 1970-01-01
    • 2018-12-13
    • 2020-09-23
    • 1970-01-01
    相关资源
    最近更新 更多