问题标签 [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.
networking - 解耦和低延迟的通信机制
有没有人有消息传输既解耦(发送者和接收者不知道/关心对方)和分布式和可能的远程交互事件的低延迟的经验?它们存在吗?
我正在研究/开发可控制软件的有形交互设备(即物理按钮、旋钮、滑块、RFID 传感器/执行器)的交互技术,这些软件可能驻留在或不驻留在与设备连接的同一系统上。
通常,某种类型的 pub/sub 方法是我想要的方式,因为我希望每个实体只关注它生成的事件和它自己的功能。更不用说,设备可能会不确定地连接和断开连接。
该领域的一项流行技术是EventHeap,它建立在 IBM 的元组空间实现TSpaces之上。您将事件推入一个袋子,然后可以将其取出。但是元组空间实现的典型性能限制是高延迟;有时是紧张或不确定的延迟。这对于细粒度的交互是不可接受的。
linux - 什么是让 D-Bus 之类的东西在多台 Linux 机器上工作的好方法,可能是通过防火墙?
D -Bus 规范说
D-Bus 是.. 应用程序相互通信的一种简单方式... 目前通信应用程序在一台计算机上...
我想要像 D-Bus 这样的东西,但可以跨多台 Linux 机器工作,并且可能涉及防火墙。例如,如果我的邮件服务器决定它收到一条重要消息,我希望它向总线上发布一个事件,我家中的计算机可以看到并可能通过启动一个linpopup
窗口来响应。
我感兴趣的事件相对较少,所以低性能的技术是可以的。但我不希望重新发明任何轮子。我还希望尽可能多地用 shell 脚本或其他高级语言编写,而尽可能少地用 C 语言编写(但如果需要的话,我愿意调用 C API)。
我解释 D-Bus 官方网页的方式,他们说让 D-Bus 与多台计算机通信会很好,但它不起作用。
编辑:D-Bus 对我的吸引力在于发布和订阅的模型:
观察有趣事件的机器将该事件发布到“系统”。
对特定事件感到好奇的机器只订阅这些事件。当事件发生时,“系统”会让机器知道。
在 D-Bus 中,“系统”是一台机器。我想要多台机器类似的东西。这排除了直接解决方案,如机器之间的 TCP 或 SMTP 通信。但我很高兴拥有一个接收所有发布和订阅请求的中央服务器。我开始认为自己构建比理解高级消息队列协议 (AMQCP)更容易,这对于我这样的人来说太高级了。
性能不是问题。简单绝对是一个对象。
再一次:我应该看什么软件?
javascript - OpenAjax 联盟与普通 Web 开发人员的相关性如何?
OpenAjax 联盟声明它是“领先供应商、开源项目和使用 Ajax 的公司的组织”,但我在 stackoverflow 上找不到任何引用它们的问题。我想知道这对练习 Web 开发人员是否重要。John Resig在 2007 年 2 月发表了一篇关于 OpenAjax的博客文章,但我找不到很多其他参考资料。
我已经将OpenAjax Hub 1.0视为在浏览器中进行发布/订阅消息传递的一种方式(类似于TIBCO PageBus,它实现了规范)。是否有人在大型、面向公众的 Web 应用程序中有效地使用了这项技术?
soa - 最佳发布/订阅“中间件”
我在市场上寻找一个好的基于开源网络的 Pub/Sub(观察者模式)库。我还没有找到我喜欢的:
JMS - 与 Java 绑定,将消息内容视为哑二进制 blob
NDDS - $$,使用 IDL
CORBA/ICE - Pub/Sub 建立在 RPC 之上,CORBA API 不直观
JBOSS/ESB——不太熟悉
如果这样的包可以做到以下几点,那就太好了:
基于网络
了解有效载荷数据,用户不必担心字节序/序列化问题
多语言支持(C++、ruby、Java、python 会很好)
没有自动生成的代码(没有 IDL!)
直观的订阅/主题管理
为了好玩,我创建了自己的. 想法?
nservicebus - 在 nServiceBus 中订阅来自多个发布者的消息
我想知道是否可以使用 nServiceBus 订阅所有类型的消息而不指定发布者的端点。
其背景是一种分布式算法,它使用 nServiceBus 的分发器基础结构将子问题委托给网络上的分布式工作者。
任务完成后,工作人员应发送消息通知发送者。
我可以使用 IBus.Reply() 来通知它,但我也有一些监视和日志记录服务,它们也对这些消息感兴趣。让发件人重新发布所有收到的回复听起来不对。
我可以在 nServiceBus 中订阅来自多个发布者的消息吗?
javascript - javascript中的多线程和订阅/发布方法
我知道 javascript 中没有多线程支持。我想要一些关于以下场景的专家建议..
我的要求是执行 AJAX 调用,并在成功完成后,我想触发一组事件(以并行更新 UI 的不同部分)
- 我计划使用订阅/发布模式,是否可以为多个侦听器订阅 AJAX 完成事件。
如果可能的话,我想知道这些监听器是如何在发布时通知的……(以多线程方式或一个接一个地并行)。
并建议我实现这一目标的最佳方法。我非常感谢你的想法。
编辑::
我知道有像 JQuery 这样的流行框架支持这种模式。但是我可以从头开始开发这个功能(我们有自己的框架)。
iphone - 在 iPhone 应用程序中使用 PubSub 框架
是否可以在 iPhone 应用程序中使用发布订阅 (PubSub) Cocoa 框架?我了解订阅功能将不可用,但是否可以使用提要解析功能?(这些将非常方便,因为它们可以处理多个版本的 RSS 和格式错误的提要。)
xmpp - XMPP PubSub 通知是同时广播还是排队?
我想知道 xmpp 发布-订阅功能是同时向所有订阅者发送通知(广播)还是在队列中发送通知,即一一发送。
我想知道我正在使用的 pub-sub 和 jaxl 类之间的区别,因为 jaxl 一次在一个用户的队列中发送推送消息。
c# - C# - 发布者订阅者解决这个问题?
假设有不同组的科学家(医学)提供紧急票。当公共池(组)的紧急票到达时,任何时候都只允许一名科学家领取票,而其他人可以或将自动收到该特定人员正在处理票的通知。
注意:一个人可以处理不同截止日期的多张票。
当票太复杂无法解决时,取票的人可以将其交给同组或不同组的其他人。在这种情况下,应立即将这种移交的原因传播给其他人。
在极端需要时,单张票的任务可以分解并分布在组中。如果一个任务被拆分并在组之间共享单张工单,共享工单的人将不被允许拿起任何新工单或处理其他现有工单(这样做,他将被通知他正在处理共享工单票)。
我的问题是:
观察者模式是通知服务的最佳选择还是其他设计模式可以顺利处理它(自由死锁)。?