问题标签 [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 投票
4 回答
449 浏览

jquery - 单击页面中的元素时如何刷新'div' - jquery

每当任何表单元素上有点击事件时,我都想重新加载一个元素。任何人都可以帮助我使用 jquery 语法吗?就像是

function addClickHandlers() { $.publish('refreshDiv'); }

div 的 reloadTopic 设置为 refreshDiv

谢谢

0 投票
1 回答
209 浏览

web-applications - PubSub 基础知识 - 大量追随者场景?

我有一个网络应用程序,用户可以在其中互相关注。当一个用户发布某些操作时,我希望该操作出现在关注者的提要中。一种简单的方法可能是为每个用户保留一个 feed.xml 文件,该文件的更新如下:

用户A 之后是用户B、用户C。

UserA 发布了一些内容。

更新 UserB、UserC xml 提要,例如:

这就像pubsub(我认为)。我不需要它是实时的。我不确定如何处理许多追随者的情况。如果一个用户有 100 万关注者,那么集线器不是必须坐在那里通知所有 100 万订阅者吗?如果集线器在单个服务器上运行,这可能会占用 CPU 很长时间,对吧?

谢谢

0 投票
3 回答
648 浏览

php - 服务器端推送的可扩展解决方案?

我想实现一种机制,该机制将提供一个 RESTful API,允许客户端通过服务器注册对主题的兴趣,并在注册兴趣后从服务器接收异步通知。在企业(消息)架构中,这称为发布/订阅“模式”。

对于桌面应用程序,这是很容易实现的——但是对于 Web 应用程序,这被证明是更加困难的。

是否有(最好是开源的)框架或库允许将发布/订阅模式应用于 Web 应用程序?

服务器端技术可能采用以下任何一种语言:C、C++、PHP、Python、Ruby。

我在 Linux Ubuntu 10.0.4 上运行

0 投票
2 回答
194 浏览

publish-subscribe - 使用发布/订阅模型发送批量消息

我们正在尝试实现一个通知模块。它允许网站内部用户相互发送消息。一个关键特性是它允许业务用户向用户发送批量消息。我们在这里谈论的是数百万用户。

目前计划为发布/订阅模型。一旦登录,系统将从数据库表中检索用户的相关消息。当每个用户都被允许删除和回复他/她收到的消息时,逻辑变得越来越复杂。

Pubsubhub 似乎是更多的服务器到服务器。对于这种情况,XMPP 似乎太复杂了。

我错过了什么?我可以让它更简单吗?任何现有的图书馆可以建立?我愿意接受任何建议。

0 投票
1 回答
166 浏览

queue - 队列中有哪些无法通过主题实现的功能?

队列中有哪些功能无法通过主题实现?

0 投票
2 回答
2516 浏览

web-services - 如何在基于 REST 的 Web 服务中实现异步请求响应

我有一个基于 REST 的 Web 服务系统。我需要在这里找到一种支持发布/订阅模型的方法。如您所知,REST 客户端和服务器之间的通信是 HTTP 协议。我在后端使用 apache (PHP) Web 服务器来处理所有 REST 请求。问题是如何使用 PHP 或其他任何东西(在 Web 服务器端)来支持这种 Pub/Sub 模型。一种典型的情况是:

1) 客户端订阅对象的更改 (GET /config/object/?type=async) 2) 客户端不会阻塞此请求,因为它是异步调用。3) 服务器接受订阅并等待事件。4) 服务器在事件发生时向客户端发布所需的数据。

我基本上需要知道如何实现上述所有这四个步骤。

0 投票
1 回答
2725 浏览

c# - .Net 中的线程安全发布订阅

我创建了一组简单的接口和一个类,允许我在通用字典中发布项目的添加和删除。订阅者在订阅时会收到整个列表,之后,他们只会得到更改。

虽然我的解决方案有效,但我正在寻找更标准的东西,而不是本土的东西。你有什么建议吗?

关于我到目前为止发现的内容的注释:

我一直在研究 Microsoft 的 Reactive Extensions (Rx)。根据 Jon Skeet 的文章“LINQ to Rx:第二印象”[1],他说“一旦观察者订阅,observable 就会将序列中的所有内容发布给它(默认情况下在不同的线程上)。单独调用订阅让 observable 对序列进行多次迭代。” 这听起来像是基本思想,但我找不到任何具体的例子,而且我还不确定“Subject”或“AsyncSubject”的线程安全性。

关于我的本土解决方案的注意事项:

交付给订阅者的结构如下所示:

订阅者自己必须实现这个接口:

当然,我的通用字典发布者类有这个方法:

[1] https://codeblog.jonskeet.uk/2010/01/19/linq-to-rx-second-impressions/

0 投票
2 回答
203 浏览

java - Module clustering and JMS

I have a module which runs standalone in a JVM (no containers) and communicates with other modules via JMS. My module is both a producer in one queue and a consumer in a different queue. I have then need to cluster this module, both for HA reasons and for workload reasons, and I'm probably going to go with Terracotta+Hibernate for clustering my entities. Currently when my app starts it launches a thread (via Executors.newSingleThreadExecutor()) which serves as the consumer (I can attach actual code sample if relevant and neccessary).

What I understood from reading questions here is that if I just start up my module on N different JVMs then N different subscribers will be created and each message in the queue will arrive to N subscribers. What I'd like to do is have only one of them (let's currently say that which one is not important) process that message and so in actuality enable me to process N messages at a time.

How can/should this be done? Am I way off the track?

BTW, I'm using OpenMQ as my implementation but I don't know if that's relevant.

Thanks for any help

0 投票
2 回答
798 浏览

java - Java 和 .Net 之间的 PubSub

.Net 是否有良好的免费服务总线允许 Java 客户端订阅?我正在使用 NServiceBus,我喜欢流畅的 API 和简单性,但它不支持 Java 客户端或基于 Web 服务的连接的 WCF 集成。

谢谢!

0 投票
2 回答
1150 浏览

.net - 使用大文件作为消息有效负载发布/订阅

我们有一个持续处理大量文件的现有系统。粗略地说,每天大约有 300 万个文件,大小从几千字节到超过 50 MB 不等。这些文件从收到文件到完成使用,会经历几个不同的处理阶段,具体取决于它们所采用的路径。由于这些文件的内容和格式,它们不能被分解成更小的块。

目前,这些文件通过的工作流是僵化的,并且由具有固定输入和输出的代码决定(在许多情况下,一个订阅者成为一组新文件的发布者)。然而,这种缺乏灵活性开始给我们带来问题,所以我正在寻找某种能够处理新需求的发布/订阅解决方案。

大多数传统的发布/订阅解决方案都将数据包含在实际有效负载中,但潜在的大文件大小超出了许多消息传递平台的限制。此外,我们有多个平台在使用:文件根据其路径在 Linux 和 Windows 层中前进。

有没有人考虑到以下目标的任何设计和/或实施建议?
1. pub 和 sub(Linux 和 Windows)的多平台
2. 持久存储/存储和转发支持
3. 可以处理大型事件有效负载并在所有订阅者都得到服务后适当清理
4. 路由/工作流通过配置完成
5. 订阅者可以根据变化的标准订阅一组过滤的已发布事件(例如,只给我特定类型的文件)

我已经对许多服务总线和 MQ 实现进行了大量研究,但还没有完全确定足够的设计方法来正确评估哪些工具最有意义。感谢您的任何意见。