是否可以订阅JMS,并从node.js应用程序中接收消息?是否有一个node.js模块允许这样做,就像amqp消息的amqp模块一样?
目前,Java应用程序接收消息。但是,我正在尝试切换到javascript。
由于
答案 0 :(得分:12)
简短回答: 否。
更长的回答: 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 protcols的实现。对于支持AMQP的Apache QPid,这很容易。 STOMP是另一个由多个JMS实现支持的轻量级协议,例如ActiveMQ和HornetQ,您可以在Internet上找到node.js / java脚本库。
更耗时的选择是使用特定的实现C / C ++ API(如果有的话)编写扩展到node.js并使用它进行连接。它(可能)比REST / AJAX方法更可靠,但也更耗时