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是服务器和客户端之间的单个连接,两个或多个线程如何在同一个连接上同时写入而不进行同步。