我有一个服务(ServiceA),客户端可以订阅endpoint,订阅后,该服务使用服务器发送的事件连续产生数据。
如果这很重要的话,我将使用ProjectReactor和Java。
这可能很重要,所以我将解释这个endpoint的作用。每隔15秒,它从另一个服务(ServiceB)获取数据,检查15秒前获取的数据是否有更改,如果有,它将使用此数据生成一个新事件,如果没有更改,它将不发送任何内容(因此发送给客户端的负载尽可能小)。
现在,这个应用程序可以一次连接多个客户端,它们都要求相同的数据,而不是由用户过滤等。
这种可观察到的输出在多个客户端之间共享是明智的吗?
当然,这将为我们节省大量对ServiceB的不必要调用,但我想知道这种方法是否有反迹象——这是我第一次在后端编写反应式程序(来自RxJS),我不知道这是否会导致任何并发问题或任何其他类型的问题。
我可以看到的另一个好处是,一个新的客户端连接将立即从ServiceB接收到最后一次数据(每次调用通常需要大约4秒才能检索到此数据)。
我还想知道,是否只有在有一些订户的情况下,这个可观察对象才调用服务B,即,在至少有一个订户之前,调用该服务,如果没有订户,则停止调用该服务,当新订户订阅时,再次调用它,但首先向客户端获取最后获取的数据(无论数据有多旧或陈旧)。
您的SSE源可以使用以下模式完全共享:
source.publish().refCount();
请注意,您需要存储该调用的返回值,并将相同的实例返回给后续调用方,以便共享发生。
一旦所有订户取消订阅,refCount
也将取消对原始源的订阅。在此之后,第一个进入的订阅者将触发对源代码的新订阅,您应该制作该订阅,以便它获取最新数据并每隔15秒重新初始化轮询周期。
问题内容: 有什么方法可以在node.js的客户端和服务器之间共享数据(包括对象)?我曾经依赖于为此目的而设计的模块now.js,但是该项目已经停产了,我正在寻找替代品。现在now.js被放弃了,还有没有其他方法可以在客户端和服务器之间无缝同步变量? 问题答案: 在now.js之后,两个最接近的竞争者是shareJS和dnode: http://sharejs.org/ https://githu
学习观察和Angular2。我想找出在多个Angular2组件之间共享可观察到的最佳实践。作为可观察的默认值是不是多播。因此,我的应用程序的不同部分的每个订阅将打开一个新的流(再次调用我的API服务器!)。此外,我需要分享价值,并获得可观察到的最新价值。我听到人们使用行为主题。但这真的很令人困惑,我找不到一个好的例子。以下是我如何在我的AuthService中处理这个问题: 在Angular2组件
问题内容: 我在同一页面上有两个不同的应用程序。 我可以通过服务(或其他方式)在这两个应用之间共享数据吗? 还是不可能? (我怀疑这是不可能通过常规的角度机构实现的)-但我认为仍然值得提出… 可以使用window变量完成此操作-但我要避免这样做。 谢谢! 问题答案: 我最终以以下方式解决了该问题: 我必须承认这一解决方案并不理想,但这是我找到的最干净的解决方案。
我在我的一个项目中使用angular 4,我正在进行一个http调用来获取数据。当数据从后端返回时,我会缓存数据,这样对于后续的请求,我就不必一次又一次地进行其余的调用。 这工作得很好。但是如果两个调用同时进行,我会看到网络选项卡中有两个请求而不是一个。所以我尝试共享()来满足“一个可观察的,多个订阅者”。 但同样,我看到网络选项卡中有多个请求,而不是一个。要只打一个电话并与所有用户分享结果,必须
我正在使用ActiveMQ客户端库将我的服务器应用程序连接到ActiveMQ。几个不同的消费者和生产者在单个线程中运行。、和之间的关系应该如何? 每个JVM一个连接工厂 每个JVM一个到代理的连接或n个连接,每个使用者一个 n个会话,每个消费者一个(Javadoc似乎强烈建议这样做)
一周前,我开始建立一个WooCommerce商店,它应该可以选择在两个客户之间共享订单。这是我为您制作的一个小图表,您可以理解它应该是什么样子(请看一看): 这就是我一步一步做的 用户B单击一个按钮- 用户B单击另一个按钮- 这两个步骤(显示和隐藏用户B的订单)工作正常——我已经测试过了。字段设置和取消设置。 现在情况越来越糟: 我已经搜索了很多,并要求一些人找到WooCommerce中的功能,该