【问题标题】:Throttling in Signal R clients on server side在服务器端限制 Signal R 客户端
【发布时间】:2017-12-21 12:50:45
【问题描述】:

我在服务器端使用集线器。 Signal R 客户端方法可以在 1 秒内调用多次。假设客户端方法被调用 1000 次。但是客户端无法处理这些大量请求。有没有办法限制服务器端的客户端方法。所以我不会调用 1000 次,而是每秒只传递 100 次。 我偶然发现了满足我要求的计时器。但它会占用太多内存(CPU 利用率)。有什么好的方法吗?

【问题讨论】:

  • 我会在客户端创建一个消息缓冲区,然后您可以轻松地以所需的速率处理其条目。
  • 但这会给客户端带来压力..这是不可取的
  • 我不太明白...当您希望发送更少的消息时,您必须决定应该发送哪些消息以及可以丢弃哪些消息。这完全取决于你需要什么。顺便说一句:在我看来,以 1000 赫兹更新的信息毫无意义(除了将它们放入长列表或图表中),因为您的客户屏幕刷新速度要慢得多。
  • 这就是我需要的......发送给客户的消息更少......在途中限制它们......

标签: c# .net signalr signalr-hub signalr.client


【解决方案1】:

如果 SignalR 集线器不在网络场或负载平衡环境中,则您可以将最后一条消息广播的时间存储到应用程序内存缓存(服务器端)中,然后检查最后一条消息的广播时间(从缓存中)在广播另一条消息之前。如果消息已在 X 毫秒内发送,则不要发送消息。

【讨论】:

    猜你喜欢
    • 2013-06-24
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    相关资源
    最近更新 更多