Signalr 信号机中的多线程广播

Signalr 信号机中的多线程广播,signalr,Signalr,我在我的应用程序中使用信号器。这是我的用例 需要广播的数据由多个线程生成。一个客户端可以分为多个组 一个线程可以广播到多个组。如果多个线程同时向一个组广播,会发生什么情况 广播信息时我必须注意同步还是由信号员负责?同时执行相当困难。(两个事件之间总会有一些差异,因此您不必担心这一点) 现在,当两个部件从点A向点B发送数据时,取决于发送数据所使用的技术,即使发送的顺序是,比如1和2,也可能发生2比1先到达的情况(因为网络不是您可以控制的) 如果消息顺序在应用程序中很重要,则应使方法广播彼此等待,因

我在我的应用程序中使用信号器。这是我的用例

需要广播的数据由多个线程生成。一个客户端可以分为多个组

一个线程可以广播到多个组。如果多个线程同时向一个组广播,会发生什么情况


广播信息时我必须注意同步还是由信号员负责?

同时执行
相当困难。(两个事件之间总会有一些差异,因此您不必担心这一点)

现在,当两个部件从
点A
点B
发送数据时,取决于发送数据所使用的技术,即使发送的顺序是,比如1和2,也可能发生2比1先到达的情况(因为网络不是您可以控制的)

如果消息顺序在应用程序中很重要,则应使方法广播彼此等待,因此应使用异步编程(通过使用
async
wait

最后,即使两个不同的线程试图同时广播同一个客户机,您也不会有问题,因为来自两个线程的数据都会到达客户机。您应该考虑这种情况发生的顺序以及是否需要保留消息顺序

希望这有帮助。祝你好运

编辑:您不必担心两个线程使用相同的
hub
的原因是,每当某个类想要通过获取
hub上下文来调用
hub
的某些用户/组时,因为
hub
实例是根据请求创建的


谢谢Matei_Radu,顺序对我来说并不重要,因为两个线程发布不同类型的数据。据我所知,Signal为每个客户端维护缓冲区。你的意思是说这个缓冲区是线程安全的吗?很抱歉,回复太晚,更新了相关问题的链接。祝你好运!这确实有帮助,但我考虑的是传输方面的问题这是hub的下一个级别,其中websocket是服务器和客户端之间的单个连接,两个或多个线程如何在同一个连接上同时写入而不进行同步。