【发布时间】:2015-11-02 17:37:00
【问题描述】:
我想澄清有关 SignalR 的几点。我有一个读取交易的应用程序(例如,具有相关股票价格流的股票代码)。此 SignalR 集线器的组以股票代码为基础。它有一个发布者,该发布者在 SignalR 集线器的启动(以读取流数据)时启动,然后客户端订阅某些股票代码。此类集线器的工作流程有据可查。
我有第二个集线器,用于搜索从表中读取的不相关(与上述)数据。此集线器的集线器发布者未在集线器启动时启动。我让发布者在订阅发生时开始。订阅接收搜索条件,创建一个组(其名称基本上是搜索条件)。这种类型的集线器对我来说并不太清楚。具体来说,当我输入不同的搜索条件时,我应该在何时何地取消订阅。目前我订阅然后根据搜索收到一条消息。当我输入不同的搜索条件时,我应该在哪里取消订阅 - (a) 来自客户端,或者 (b) 我应该简单地将旧条件与“下一个”搜索条件一起传递并在服务器上调用 unsubscibe(即取消订阅一个并订阅到另一个),或者(c)我需要明确取消订阅吗?
任何帮助将不胜感激
【问题讨论】:
-
我不清楚的是,当您订阅搜索词时,您是否希望您的客户在不同时间收到多个答案,基于相同条件下可用的新结果?我假设是这样,但从你的问题我不确定,因为那为什么需要不同的搜索条件来清除前一个?他们在我看来是不相关的搜索。
-
我正在尝试做的是 UserA 订阅一个集线器(传递一个值 123),该集线器创建了一个名为 ACCOUNT123 的组(123 是他/她正在搜索的帐号)。 UserB 订阅了同一个集线器(传递值 456),该集线器创建了一个组 ACCOUNT456(456 是他/她正在搜索的帐号)。当搜索针对每个条件返回的内容有更新时,结果应仅传递回相关用户(即,如果帐号 123 的帐户名称发生更改,则更新将仅发送给 UserA,因为他/她已订阅到 ACCOUNT123 组)
标签: c# signalr publish-subscribe unsubscribe