0

我想澄清关于 SignalR 的几点。我有一个读取交易的应用程序(例如,具有相关股票价格流的股票代码)。此 SignalR 集线器的组以股票代码为基础。它有一个发布者,该发布者在 SignalR 集线器的启动(以读取流数据)时启动,然后客户端订阅某些股票代码。这种类型的集线器的工作流程有很好的记录。

我有第二个集线器,用于搜索从表中读取的不相关(与上述)数据。此集线器的集线器发布者未在集线器启动时启动。我让发布者在订阅发生时开始。订阅接收搜索条件,创建一个组(其名称基本上是搜索条件)。这种类型的集线器对我来说并不太清楚。具体来说,当我输入不同的搜索条件时,我应该在何时何地取消订阅。目前我订阅然后根据搜索收到一条消息。当我输入不同的搜索条件时,我应该在哪里取消订阅 - (a) 来自客户端,或者 (b) 我应该简单地将旧条件与“下一个”搜索条件一起传递并调用服务器上的取消订阅(即取消订阅一个并订阅到另一个),或者(c)我需要明确取消订阅吗?

任何帮助将不胜感激

4

1 回答 1

0

SignalR 并不是真正为 pub/sub 设计的,有一些构建在 SignalR 之上的库可以解决这个问题,例如我自己的https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki

这会抽象出信号器,现在您可以触发您认为适合您的域(后端)的强类型消息。客户可以收听这些消息,我的图书馆会将它们粘合在一起。

我的库不使用 SignalR 组,而是有自己的库,用于将消息路由到特定客户端。https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki/Implement-constraint-handlers

博文

http://andersmalmgren.com/2014/05/27/client-server-event-aggregation-with-signalr/

于 2015-08-11T07:39:11.803 回答