如果不同客户端同时发生多个请求,则 Hub.Context.ConnectionId 的值会在处理程序执行期间发生变化。
假设我有 2 个客户端与客户端 ID A 和 B 连接,并且我的 Hub 上有一个名为 foo() 的方法。我从 A 向服务器发送一个调用 foo() 的请求,然后在处理来自 A 的请求时,我从 B 发送一个调用 foo() 的请求。在处理 A 的请求时 Hub.Context.ConnectionId == A,但在方法调用结束时 Hub.Context.ConnectionId == B。
我应该复制 Hub.Context 吗?我应该在什么时候这样做?
它不需要是线程安全的,因为 Hub 实例不是静态的,因此您不需要复制任何内容。
它们是在每次调用时创建的。因此,来自客户端的每次调用都会创建一个新的 Hub 实例和 HubContext。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)