我已经开始尝试使用SignalR。我一直在想出一个灵活的方式来存储关于每个连接客户端的信息。例如,将该名称存储在聊天应用程序中,而不是将其传递给每个消息。SignalR - 存储客户端信息
此刻,我有一个静态字典,它将connectionId与包含这些属性的对象相匹配。我在连接上添加了这本词典,并在断开连接时删除。
我遇到的问题是我似乎没有得到所有的断开连接事件。如果我在Chrome中关闭了某个标签,则断开连接似乎已经结束。但是,如果我快速重新加载选项卡,断开似乎不会发生(至少不是“干净地”)。例如,如果我一遍又一遍地重新载入同一个标签,它会告诉我我的字典有多个项目 - 理论上它应该是一个。
是否存在这种每种连接信息的标准存储方式?否则,可能会导致我遇到的问题?
是的,谢谢,这有助于很多。总是很高兴听到我做得正确!我不知道超时 - 这是可配置的吗? 另外,我将如何处理OnReconnect事件? Yup! – Barguast 2013-02-26 00:28:18
是! GlobalHost.Configuration.DisconnectTimeout。对于重新连接,你应该检查你的用户是否存在,如果它没有做任何事情,如果它不然后添加=)。 – 2013-02-26 01:22:25
检查用户是否存在 - 这是否表示是否存在具有提供的connectionID的条目?我仍然对连接*真正*代表的是什么,它的一生如何,等等我有点模糊。我会给文档一个完整的阅读。 – Barguast 2013-02-26 12:17:21