gpt4 book ai didi

SignalR 服务器更新与客户端对更新子集的兴趣

转载 作者:行者123 更新时间:2023-12-02 01:49:50 24 4
gpt4 key购买 nike

在我见过的许多示例中,例如 StockTicker 应用程序,假设所有客户都对所有股票价格的更新感兴趣...

当客户只关心更新的一个子集时,我正在尝试确定最佳实践...

我会:

  1. 向所有客户端广播所有更新,并让客户端确定客户端方法中的“如果他们关心”?
  2. 向每个客户端连接注册“项目兴趣”并在某处维护一个客户端连接表,向所有表达过的客户迭代广播兴趣?
  3. 为每只股票创建一个 SignalR 组(例如),以及将客户注册到每个“感兴趣”的特定股票组和在相关更新期间仅向特定组广播股票?
  4. 还有一些我想念的...

为了让这个问题不那么主观,上述每个场景的陷阱是什么(而不是“你更喜欢哪个?”)?

谢谢帮派。

最佳答案

“我会:”

  1. “向所有客户端广播所有更新,并让客户端在客户端方法中确定“他们是否关心”?”

    这个解决方案可能是最容易实现和推理的。不幸的是,此解决方案也产生了最多的网络流量。在发送的消息很敏感并且应该对某些客户端隐藏的某些情况下,它也可能被认为是不安全的。

  2. “向每个客户端连接注册“感兴趣的项目”,并在某处维护一个客户端连接表,向所有表达了该兴趣的客户端迭代广播?”

    这在概念上似乎与 SignalR 组非常相似,但向单个客户端迭代广播通常不如向组广播有效。这主要是因为 SignalR 只需在每个组广播中向其总线发布一条消息。

    即使您最终使用内置的 SignalR 组功能,您仍然可能希望为每个客户端维护一个包含“感兴趣的项目”的“客户端连接表”。 SignalR 只允许您向群组添加/删除客户端以及向群组广播,因此如果您想了解群组中当前有哪些人,您将不得不自己跟踪。

    如果您维护自己的表格,您可以避免发送您知道目前没有客户感兴趣的消息。您还可以在客户离开和回来时自动重新订阅他们感兴趣的项目。

  3. “(例如)为每只股票创建一个 SignalR 组,并为每个“感兴趣”的特定股票组注册客户,并在相关股票更新期间仅向特定组广播?”

    这是我的选择。组自然地与“感兴趣的项目”对齐。鉴于您的情况,我认为没有太大的缺点,特别是如果您还维护自己的“客户端连接表”。

  4. “我还缺少其他东西……”

    我认为您涵盖了三个基本选项。

关于SignalR 服务器更新与客户端对更新子集的兴趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com