我的系统由以下内容组成:
- SignalR服务器
- 多个C#客户端连接到SignalR服务器。
据我所知,一旦连接,每个客户端都会有自己的关联ConnectionId
。
现在,我想实现一个弹性策略,在SignalR服务器重新启动后,它仍然应保留之前在Hub中拥有的群组和连接。
我考虑通过将群组和ConnectionIds存储在外部存储(例如数据库)中,并在应用程序启动时进行恢复来实现此目的。
当服务器关闭时,客户端的连接可能已断开。但是这可以通过使客户端在断开连接时始终尝试重新连接来在一定程度上减轻。一旦服务器重新启动,客户端就会重新连接。
然而,这个解决方案似乎有些不可靠。特别是,我不确定一旦客户端重新连接,它是否会保留相同的ConnectionId
。
这种方法合理吗?有更好的方法吗?