在SignalR中Hub.Context线程安全吗?
如果同时从不同客户端发生多个请求,则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。
这并没有直接回答你的问题,但我通常的工作流程是在他们第一次连接时在呼叫者上设置一个值,这可能会满足你的需求吗?
上述就是C#学习教程:在SignalR中Hub.Context线程安全吗?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
Caller.clientId = Guid.NewGuid();
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1008141.html