SignalR中的多线程广播

时间:2015-08-31 16:09:52

标签: signalr

我在我的应用程序中使用signalR。这是我的用例

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

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

在广播消息时是否必须注意同步?SignalR会照顾这些同步吗?

1 个答案:

答案 0 :(得分:0)

Same time很难实现。 (两个事件之间总会有一些差异,所以你不必担心这个。)

现在,当您将2个数据从point A发送到point B时,根据用于发送数据的技术,即使您发送的顺序是,我们也要说1和2,可能会发生2在1之前到达(仅仅因为网络不是你可以控制的东西)。

如果消息顺序在您的应用程序中很重要,您应该使方法广播等待,因此您应该使用异步编程(使用asyncawait

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

希望这会有所帮助。祝你好运!

编辑:您不应该担心使用相同hub的2个主题的原因是每当某个类想通过获取hub来调用hub context的某些用户/组时,因为每个请求都创建了hub个实例。

See this answer form the guy who created SignalR.