【问题标题】:AspNetCore SignalR Streaming ClarificationsAspNetCore SignalR 流式澄清
【发布时间】:2018-10-03 20:42:11
【问题描述】:

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

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

2- 如果是,与调用this.Clients.Caller.Invoke() 有什么区别

3- 假设我正在收听外部实时提要,例如证券交易所,推荐使用信号流吗?

4- 根据this post,作者住在Task.Run()。那么,如果我需要使用流向 1000 个客户推送实时提要,这如何扩展?通常使用信号流是否存在任何可扩展性问题?

【问题讨论】:

    标签: asp.net-core signalr streaming system.threading.channels


    【解决方案1】:

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

    是的。

    2- 如果是,那么与执行 this.Clients.Caller.Invoke() 有什么区别

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

    3- 假设我正在收听外部实时提要,例如证券交易所,推荐使用信号流吗?

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

    4- 根据这篇文章,作者生活在 Task.Run() 中。那么,如果我需要使用流向 1000 个客户推送实时提要,这如何扩展?通常使用信号流是否存在任何可扩展性问题?

    它可以很好地扩展。 Task.Run 启动 Stream,但您永远不会持有线程人质。

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多