背景
我无法弄清楚为什么从尚未初始化的集线器调用Disconnect的原因。
我有两个不同的MVC视图,可以创建不同的信号连接:
当用户登录时,他/她被重定向到ListView,其中javascript创建与ListHub的连接,以便页面知道锁定/解锁列表中的项目的事件。当用户点击某个项目时,会向ListHub发送一个信号,该项目将被用户锁定。之后,我通过使用event.preventDefault()来停止点击执行GET请求,并且它运行良好。
问题是...... 一旦用户离开另一个页面 - 或者只是重新加载页面 - 将触发 DetailsHub 的Disconnect方法。我不明白为什么会这样。请记住,ListHub是迄今为止唯一的活动中心。没有其他集线器或连接已初始化。不过,这是我正在采取的行为。
我想要实现的目标
我在这里想要实现的是在DetailsHub上引发/调用Disconnect时执行的操作。当用户断开与ListHub的连接时,我不希望发生任何事情。
答案 0 :(得分:1)
它是用signalR项目的wiki编写的:
每当客户端断开连接时,将在所有实现IDisconnect的集线器上调用Disconnect方法。调用此方法时,可以使用Context.ConnectionId访问断开连接的客户端。