问题标签 [publish-subscribe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1489 浏览

wpf - 事件聚合...到底发生了什么?

我经常想知道它,但现在我遇到了一个包含它的逻辑,我想我应该继续在破译基本面方面获得一些帮助。问题如下,我正在查看一个使用复合应用程序库的 WPF 应用程序。在应用程序的源代码中,我在视图的演示文稿中遇到了以下代码行。为了方便起见,我将其称为演示文稿 A:

当我在上面给定的方法中看到 Publish 方法时,我的直觉告诉我在某个地方和另一个类中必须有一个订阅,我将它称为 Presentation B 有以下内容:

在同一个类中有一个名为 OnSomeEventA 的私有函数,其中包含一些逻辑。

我的问题是这里的一切是如何连接的?这里的“发布”“订阅”到底实现了什么?当“某事”发生变化时,编译器如何知道它必须遵循 OnSomethingChanged 中的逻辑,该逻辑将“发布”一个由另一个类“订阅”的事件,其中描述了事件处理程序的逻辑?了解这个过程的基本布线会很棒。

谢谢

0 投票
5 回答
3508 浏览

javascript - Jquery - Publish and Subscribe?

Is there such a thing as publish and subscribe for use with jquery to send msgs from 1 javascript page to another.. Using the same idea behind ajax publish and subscribe?

I would like to use the pattern for communication between pages, i have been using a javascript framework lately but recently converted back to jquery and would love to continue using this.

Any ideas where i should start? and which implementation to use if more than 1 exists..

Thanks

0 投票
2 回答
838 浏览

.net - 是否有任何用于应用内通信的轻量级发布/订阅库?

在工作中,我要维护的产品有很多“移动部件”,这是我对其架构方式的主要症结之一,如果十个不同的位置需要知道选择了列表中的新项目,直接代码路径必须编码。例如在以下布局中。

(我工作的实际应用程序对于 GUI 组件有比这更多的层...... bleh......)

如果我们向任何控件添加另一个视图,这取决于选择了哪个项目,Form1 需要路由消息。更糟糕的是,如果我们从选择列表或任何视图中添加可以在选定项目上调用的各种命令,则需要修改视图以正确调用操作。通常此类操作位于 Form1 中(也可通过主菜单选项获得......)

(将 SelectionList 想象成一个文件列表......)

这看起来既脆弱又麻烦。

最近我一直在玩弄在应用程序中制作(或在价格合适时获得)一个子系统的想法,事件(例如命令)的发布者和订阅者只需要知道事件参数的定义和事件的名称,以便接收事件。

我的问题是:

  1. .Net 3.5 中是否有商业、开源或公共领域的库已经这样做了?(我使用 C#。)这需要是一个 INTRA-APPLICATION 机制。我已经知道MSMQ 和This Codeplex 项目等跨应用程序库和机制。

  2. 如果您有开发或使用此类解决方案的经验,那么要避免的三大陷阱是什么?

0 投票
8 回答
6632 浏览

.net - 哪些技术可用于使用 .NET 的发布/订阅模型?

我目前正在开发一个应用程序,其中应用程序的一个组件需要根据某些事件与多个其他系统组件进行交互。这些事件基于许多不同的触发器而发生……一些事件是由需要通知其他用户的用户操作引起的,一些事件是基于时间的,而其他事件是基于对象状态的变化。

根据我目前所看到的,听起来最简洁的解耦应用程序组件的方法是设置一个发布/订阅模型,其中组件中的我的对象发布其他感兴趣的应用程序组件可以订阅的事件。

我见过 nServiceBus,出于“供应商锁定”的原因,我不能在 Azure 中使用 .NET 服务。还有其他可用的技术吗?我应该考虑另一种方法吗?

编辑- 明确地说,这是一个基于网络的大容量应用程序。该应用程序是 ASP.NET MVC,并且 MVC 应用程序正在与多个 WCF 服务进行通信以获取其数据。

0 投票
1 回答
1894 浏览

c++ - OpenDDS 和发布者存在通知

问题:如何获取展位发布者连接和断开的活跃度通知?

背景:我正在使用 OpenDDS 实现,其中我有一个数据类型 (dt) 的发布者和订阅者,使用相同的主题,位于不同的计算机上。

订阅方的阅读器已经覆盖了on_data_available(...)和的实现on_liveliness_changed(...)。我的订阅者首先启动,导致回调on_liveliness_changed(...),说没有可用的作者。当发布者启动时,我会收到一个新的回调,告诉我有一个可用的作者,并且当发布者发布时,on_data_available(...)会调用它。到目前为止,一切都按预期工作。

发布者上的作者具有on_publication_matched(...). 启动发布on_publication_matched(...)者时,由于我们已经启动了订阅者,因此会被调用。

问题是当发布者断开连接时,我on_liveliness_changed(...)在阅读器端没有得到回调,当发布者再次启动时我也没有得到新的回调。

我试图通过设置readerQos.liveliness.lease_duration. 但结果是on_data_available(...)永远不会被调用,唯一的回调on_liveliness_changed(...)是在启动时,告诉我没有发布者。

/克里斯托弗

0 投票
1 回答
2438 浏览

struts2 - Struts2 和 Dojo(双重?)发布

我正在发布道场主题:

在 JSP 中,我有 listenTopics:

问题是,我的行动被发布了两次,我不知道为什么。

0 投票
1 回答
1222 浏览

msmq - NServiceBus - 作为订阅者和工作者服务的应用程序

我有一项服务需要在多台机器上运行,从单个队列中挑选作业,确保每个作业仅由单个服务承担。我还需要发布消息以供所有服务接收,例如重新加载触发器。

在没有太多黑客攻击的情况下,这可能在 nservicebus 中实现吗?

我已经证明发布模型和发送模型都对我有用,但是一旦我的客户需要处理这两种架构,它就会将它们全部视为发送架构,并且并非所有服务都接收发布方法。

这是我到目前为止的配置文件:

发布者(所有服务都需要接收这些消息),使用 Bus.Publish<...>(...):

发件人(只有一项服务可以接收这些),使用 Bus.Send<...>(...):

服务(每个都有相同的本地队列名称并订阅上面的发布者):

0 投票
2 回答
4737 浏览

jms - 集群应用服务器中的 JMS 主题订阅者如何接收消息?

假设我创建了一个具有一个订阅者 (PropertiesSubscriber) 的 JMS 主题 (PropertiesTopic)。PropertiesSubscriber 运行在负载平衡的应用服务器集群中,如下图所示。

替代文字 http://www.freeimagehosting.net/uploads/be28c03781.png

将消息传递到 PropertiesTopic 时,是否所有运行在不同应用服务器上的 PropertiesSubscriber 实例都会收到该消息,还是只将消息传递到运行在由负载均衡器确定的应用服务器上的一个 PropertiesSubscriber 实例?

0 投票
2 回答
20371 浏览

php - php在post请求中读取xml

所以,我已经执行了两个步骤

a) 在其中一个 php 文件中创建一个随机的 xml 文件。b) 在第二个文件中解析相同的 xml 文件。

关键是 a) 中的 php 文件将向 php 文件 b) 发出一个 post 请求,其中只有 xml 作为其请求。

文件 b) 必须使用 SIMpleXml 读取 xml 文件。

我正在尝试为此http://blog.superfeedr.com/API/pubsubhubbub/getting-started-with-pubsubhubbub/做点什么。

我的服务器将从 superfeeder 接收 xml 形式的通知。通知将是请求中的 xml 文件。

我正在执行步骤 a) 只是为了确认我的 b) 部分是正确的。

如何在 PHP 中做到这一点。我尝试了所有的 $_REQUEST, $GLOBALS 变量。但是,不知道是什么方法!

0 投票
2 回答
1798 浏览

java - 创建发布-订阅模式以集成到 DAO 模式

基于这个问题(如何为 webapp 创建客户端通知服务或者我应该使用观察者模式?)我想知道。

我有一个完全实现的 DAO,它带有仅包含 getter 和 setter 方法的实体 bean。每个实体都映射到一个 EntityManager。

目前没有办法通知用户任何添加/删除/更新到持久存储(如数据库)的更改。

我想知道,我将如何实现发布-订阅模式(也称为观察者模式),这样我就不必扩展我当前的 DAO 架构。我不希望我的实体继承发布者,因为并非所有实体都可以更新。

如果有任何工具/框架/库可以用于我的情况,请告诉我。另外,我根本没有使用任何持久性框架(Hibernate 等框架),DAO 管理器和工厂完全是我从头开始编写的。

问候,