AspNetCore SignalR流澄清

时间:2018-10-03 20:42:11

标签: asp.net-core signalr streaming

我一直在浏览最新的Signalr文档,偶然发现了名为Streaming的新功能。我也,并且我设法使其与JS客户端一起运行。但是,我仍然不清楚何时使用它。

1- df V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 1 2 Race3 and Hispanic Origin 3 White 245,985 27,113 547 11.0 0.2 247,272 26,436 714 10.7 0.3 -677 *-0.3 4 White, not Hispanic 195,221 17,263 493 8.8 0.3 195,256 16,993 571 8.7 0.3 -270 -0.1 5 Black 41,962 9,234 388 22.0 0.9 42,474 8,993 373 21.2 0.9 -241 -0.8 6 Asian 18,879 1,908 175 10.1 0.9 19,475 1,953 190 10.0 1.0 45 -0.1 是否将数据流传输到单个客户端?

2-如果是,与调用ChannelReader

有什么区别

3-假设我正在收听外部实时供稿,例如股票交易所,建议使用信号流吗?

4-根据this post,作者生活在this.Clients.Caller.Invoke()中。那么,如果我需要使用流推送实时供稿来说1000个客户端,那么这种扩展性又如何呢?一般使用信号流是否有可扩展性?

1 个答案:

答案 0 :(得分:1)

  

1- ChannelReader是否将数据流传输到单个客户端?

是的

  

2-如果是,与执行此操作有什么区别。Clients.Caller.Invoke()

您一次只能(顺序)调用一个方法。只要您正在进行调用,其余的将一直排队等待该连接,直到上一个连接完成为止。使用流方法,您可以启动流并将数据泵送到客户端,同时仍在同一集线器上调用其他方法。

  

3-假设我正在收听外部实时供稿,例如股票交易所,建议使用信号流吗?

流用于从客户端操作触发的流数据。您仍然可以只通过在IHubContext上调用方法来进行未经请求的流传输(不是从客户端)。

  

4-根据这篇文章,作者生活在Task.Run()中。那么,如果我需要使用流推送实时供稿来说1000个客户端,那么这种扩展性又如何呢?一般使用信号流是否有可扩展性?

它可以很好地缩放。 Task.Run启动了Stream,但是您从未持有线程质。