我已经开始尝试使用 SignalR。我一直在尝试想出一种灵活的方式来存储有关每个连接的客户端的信息。例如,将名称存储在聊天应用程序中,而不是随每条消息一起传递。
目前,我有一个静态字典,它将 connectionId 与包含这些属性的对象相匹配。我在连接时添加到此字典,并在断开连接时删除。
我遇到的问题是我似乎没有收到所有断开连接事件。如果我关闭 Chrome 中的选项卡,则断开连接似乎会通过。但是,如果我快速重新加载选项卡,则似乎不会发生断开连接(至少不是“干净地”)。例如,如果我一遍又一遍地重新加载同一个标签,它会告诉我我的字典应该有多个项目 - 理论上仍然是一个。
是否有存储这种每个连接信息的标准方法?否则,什么可能导致我遇到的问题?