是否可以订阅 JMS,并从 node.js 应用程序中接收消息?是否有允许这样做的 node.js 模块,例如用于 amqp 消息的 amqp 模块?
当前,消息由 Java 应用程序接收。但是,我正在尝试切换到 javascript。
谢谢
是否可以订阅 JMS,并从 node.js 应用程序中接收消息?是否有允许这样做的 node.js 模块,例如用于 amqp 消息的 amqp 模块?
当前,消息由 Java 应用程序接收。但是,我正在尝试切换到 javascript。
谢谢
简短的回答:没有。
更长的答案:JMS 只不过是 Java 中的 API 接口规范。没有 Java 就不能真正使用 JMS。因此,要使用通用 JMS(任何供应商),您需要在 JMS 实现和您的 JavaScript (node.js) 应用程序之间有一些 Java 胶水代码(例如 seam 或更多定制的东西)。
另一方面,AMQP 不仅仅是一个 API。它实际上是一种标准化的有线协议,因此可以用任何语言实现。JMS 没有这种奢侈。
也就是说,如果您选择与特定供应商合作,您可能会有一些选择。
我完全知道 Apache ActiveMQ 支持 AJAX,IBM WebSphere MQ 和 JBoss HornetQ (http://www.jboss.org/hornetq/rest.html) 也是如此(至少部分支持)。
除了 REST/AJAX 之外,其他选项正在尝试实现或找到不同 JMS 供应商使用的不同 Wire 协议的实现。对于支持 AMQP 的 Apache QPid,这很容易。STOMP 是另一个由多个 JMS 实现支持的轻量级协议,例如 ActiveMQ 和 HornetQ,您可以在 Internet 上找到 node.js/java 脚本库。
一个更耗时的选择是使用特定的实现 C/C++ API(如果有的话..)为 node.js 编写扩展并使用它进行连接。它(可能)比 REST/AJAX 方法更可靠,但也更耗时