问题标签 [stomp]
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.
python - 使用 Twisted 和 Comet 将命令的结果流式传输回浏览器
我正在编写一个应用程序,它将服务器上激发的 python 脚本的输出(我的意思是 sys.stdout 和 sys.stderr)实时传输到浏览器。
站点上的用户将被允许选择要运行的脚本,激发和终止他们选择的脚本,并更改一些参数,因此我需要站点上的每个用户不同的线程(用户 A 可以启动、停止和更改脚本,而用户 B 可以使用不同的脚本执行相同的操作)。
我知道我需要为 web 客户端使用彗星,并且看到项目的其余部分是用 python 编写的,我想为服务器使用twisted,但是我不太确定下一步我需要做什么!
有很多令人生畏的选项(Divmod Mantissa、Divmod Nevow、twisted.web、STOMP 等),其中一些比其他选项有更好的文档记录,这让整个事情变得相当棘手!
我有一个在轨道上使用 stompservice 的工作演示,将 Orbited.TCPSocket 用于 javascript 方面,但是我开始认为 STOMP 通道模型不适用于多线程、多运行脚本(除非我打开一个每次运行新通道,但这似乎是对通道模型的错误使用)。
谁能指出我正确的方向,或者我可以从中学习一些示例代码?
谢谢!
c# - C# (openwire) & python (stomp) 客户端是否支持 ActiveMQ 的故障转移机制?
我想使用 ActiveMQ 将 python 服务与 C# 客户端连接起来。有没有办法在 C# (openwire) 和 python (Stomp) 中指定故障转移连接?
ActiveMQ 将被配置为共享文件系统主从。
udp - 我可以将 Apache ActiveMQ 配置为通过 UDP 使用 STOMP 协议吗?
我正在为 Ada 开发一个 STOMP 绑定,它使用 TCP/IP 作为客户端和配置为 STOMP 代理的 ActiveMQ 服务器之间的传输,工作正常。我认为也支持 UDP(即 STOMP over UDP),但是,ActiveMQ 文档或网络搜索中缺乏相关信息向我表明这是不可能的,甚至可能没有任何意义: -)
以一种或另一种方式确认(如果可能的话,还有一个 ActiveMQ 配置摘录)将不胜感激。
message - 如何将 ObjectMessage 从 perl 发送到 JMS
我想将 perl 对象作为消息发送到 JMS 服务器。我正在使用 Net::Stomp 将消息从 perl 客户端发送到 jms 服务器。我能够发送文本消息,但我想构造一个类似于 java 对象的对象并将其发送到 jms 并将该 perl 对象转换回 jms 服务器上的 java 对象。有人可以帮忙吗?
java - 从 ActiveMQ 触发 PHP
背景: 我们当前的系统涉及两个使用 HTTP 回调相互通信的服务(一个用 Java 编写,另一个用 PHP 编写)。我们希望从 HTTP 回调迁移到使用 ActiveMQ(或其他,如有必要)的基于消息的架构。我们可能会使用STOMP在它们之间进行通信。最终,PHP 服务将用 Java 重写,但这不是这个项目的一部分。
问题: ActiveMQ 系统如何通知 PHP 一条新消息已发布到 PHP 系统订阅的队列中?在当前系统中,回调固有地调用 PHP 并触发它。这随着基于消息的架构而消失。
可能的解决方案:
- Cron 定期调用一个 PHP 脚本来检查新消息。呸。
- 一个长时间运行的 PHP 进程,它循环和休眠并检查新消息。少恶心?
- ActiveMQ 在发布新消息时调用 PHP 脚本。好,怎么样?
- ??
ruby - 带 stomp 和 activemq.prefetchSize=1 的 activemessaging
我有一种情况,我有一个带有 2 个队列 Q1 和 Q2 的 activemq 代理。我有两个使用 activemessaging 的基于 ruby 的消费者。我们称它们为 C1 和 C2。两个消费者都订阅每个队列。我在订阅每个队列时设置了 activemq.prefetchSize=1。我也在设置 ack=client.
考虑以下事件序列:
1) 触发长时间运行作业的消息发布到队列 Q1。称它为 M1。
2) M1 被分派给消费者 C1,开始一个长操作。
3) 两条触发短作业的消息发布到队列 Q2。将这些称为 M2 和 M3。
4) M2 被派往 C2,C2 快速运行短作业。
5) M3 被分派到 C1,即使 C1 仍在运行 M1。它能够分派到 C1,因为 prefetchSize=1 是在队列订阅上设置的,而不是在连接上。因此,已经发送了 Q1 消息这一事实并不能阻止发送 Q2 消息。
由于 activemessaging 消费者是单线程的,因此最终结果是 M3 在 C1 上等待很长时间,直到 C1 完成对 M1 的处理。因此,尽管消费者 C2 处于空闲状态(因为它很快以消息 M2 结束),但 M3 没有长时间处理。
本质上,每当运行一个长 Q1 作业然后创建一大堆短 Q2 作业时,恰好有一个短 Q2 作业卡在等待长 Q1 作业完成的消费者身上。
有没有办法在连接级别而不是订阅级别设置 prefetchSize?我真的不希望在处理 M1 时将任何消息发送到 C1。另一种选择是我可以创建一个专用于处理 Q1 的消费者,然后让其他消费者专用于处理 Q2。但是,我宁愿不这样做,因为 Q1 消息很少——Q1 的专用消费者会在一天中的大部分时间处于空闲状态,占用内存。
java - Stomp 的 MessageMap 格式是否完全无法使用?
我将 Java 中的 MapMessages 发送到 ActiveMQ 并使用PHP中的Stomp检索它们。我的消息创建代码如下所示:
当我在 PHP 中检索它们时,创建的数组如下所示:
我该怎么办?有没有办法说服 Stomp 以合理的方式反序列化它,或者是否有一些 PHP 咒语使访问这个数组不那么痛苦?特别是,我不能只遍历条目并构建关联数组,因为如果存在字符串 & int 而不是两个字符串,则数组看起来完全不同。
java - 使用 ActiveMQ/Stomp 在 PHP 和 Java 之间进行通信
背景
我有两个服务需要通过消息队列相互通信。一种是用 PHP 编写的遗留服务,另一种是用 Java 编写的。迟早,PHP 服务将用 Java 重写。它们相互通信的当前方式是写入共享数据库,由其他服务轮询。这就是我试图摆脱并用消息队列代替的东西。
问题
我现在正在处理的通信是从 PHP 服务到 Java 服务。它需要发送一个相对复杂的对象(字符串和整数以及字符串和整数的列表和映射)。理想情况下,该解决方案在 PHP 中是可行的,在 Java 中是理想的,因为这将是这个项目的遗产。
可能的解决方案
-
1.
messaging - 0MQ 是协议、层还是两者兼而有之?我可以将它与 STOMP 一起使用吗?
我已经束手无策,对 STOMP 和 0MQ 都是新手,但简而言之,我想通过 PHP MOM 或许多 PHP MOM 的交互来促进浏览器中的客户端到客户端通信。我正在考虑使用 WebSocket 在 html5 浏览器客户端和 MOM 端点之间提供持久的双工连接(如果可用),然后使用这些端点来促进任意数量的浏览器客户端之间的通信,这可能与 1-1、1- 相关很多,很多-1的关系。
MOM 端点可能出于不同目的与其他服务器或它们之间进行通信,我相信 0MQ 可能是在这些服务器之间快速交换信息的可行方式。作为客户端之间消息传递的协议,STOMP 看起来不错(尽管我知道协议定义存在一些问题)....
....所以这是我的困惑点。要使用 STOMP,MOM 必须是一个 STOMP 代理,如果它是一个 STOMP 代理,那么由于 0MQ 是一个“无代理”消息传递层,我不会违背使用两者的目的吗?
为了澄清,我正在考虑 0MQ 用于 MOM - MOM 通信,以及 STOMP 用于客户端 - 客户端通信。
当然,除非有一种方法可以重新利用 0MQ 来促进客户端到客户端的通信?我想我真正的困惑是 0MQ——它是一个轻量级的消息传递层,而不是一个协议,还是两者兼而有之?如果它只是一个层,我不能使用 0MQ 来传输 STOMP 消息吗?
如果有人能为我照亮 0MQ,我将不胜感激 - 谢谢!
activemq - 预建的 AMQP 和 STOMP 客户端(如 GUI 客户端)
我正在寻找一个客户端(如 GUI 客户端,而不是客户端库)来使用我们的 MQ 服务器并熟悉它的语义。只需按一下按钮(或文本命令)就可以发送和接收消息,甚至可能会向我更新服务器队列和消息的状态。管理将是一个奖金。UI 不必是图形的(即命令行客户端很好)。
服务器可能会运行 RabbitMQ,因此任何特定于 RabbitMQ 的东西都很好,ActiveMQ 也是如此。但我宁愿有一个通用的 AMQP 或 STOMP 工具。
那么,存在这样的东西吗?
我知道一些管理和监控工具都带有服务器发行版,但没有客户端,对吧?