在ASP.NET Core中的SignalR中重新连接后重新连接到组

问题描述

我在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。对于客户端,我使用两种客户端:.NET Core SignalR客户端版本3.0和Javascript客户端3.1.8。

解决方法

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

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

否,在ASP.NET Core SignalR中重新连接时,不会保留组成员身份。选中此link

如果客户端必须重新连接到SignalR集线器,那么Context.ConnectionId是否保持不变(通过此处的重新连接,我的意思是刚刚从非活动连接中恢复并且没有更改为新网站)?

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