我在我的应用程序中使用signalR。这是我的用例
需要广播的数据由多个线程生成。单个客户可以分为多个组。
线程可以广播到多个组。如果多个线程同时向一个组广播,会发生什么。
在广播消息时是否必须注意同步?SignalR会照顾这些同步吗?
答案 0 :(得分:0)
Same time
很难实现。 (两个事件之间总会有一些差异,所以你不必担心这个。)
现在,当您将2个数据从point A
发送到point B
时,根据用于发送数据的技术,即使您发送的顺序是,我们也要说1和2,可能会发生2在1之前到达(仅仅因为网络不是你可以控制的东西)。
如果消息顺序在您的应用程序中很重要,您应该使方法广播等待,因此您应该使用异步编程(使用async
和await
。
要结束,即使两个不同的线程尝试同时广播同一个客户端,您也不会遇到问题,因为来自两个线程的数据都将到达客户端。您应该考虑的是发生这种情况的顺序以及是否需要保留消息顺序。
希望这会有所帮助。祝你好运!
编辑:您不应该担心使用相同hub
的2个主题的原因是每当某个类想通过获取hub
来调用hub context
的某些用户/组时,因为每个请求都创建了hub
个实例。