我已经使用node.js创建了一个Web服务器,现在在客户端(我使用JavaScript创建),当用户单击发送按钮时,我想将数据发送到JMS队列,而不是使用post请求(XMLHttpRequest)。我该如何在JavaScript中实现这一点。
我已经使用node.js创建了一个Web服务器,现在在客户端(我使用JavaScript创建),当用户单击发送按钮时,我想将数据发送到JMS队列,而不是使用post请求(XMLHttpRequest)。我该如何在JavaScript中实现这一点。
JMS是一个仅限于Java的API。除非你在Java上运行JS(Rhino或其他),否则无法使JavaScript实现Java-API。但这似乎并不是这种情况。
理论上,可以使用JNI实现C++包装器以与可以使用JMS的java类交互。然后必须将该包装器适应为Node/V8扩展程序...好吧,这是很容易出错的工作。不要走这条路。
解决方法不是使用JMS。大多数JMS实现(ActiveMQ、IBM WebSphere MQ等)通常有多种与之通信的方式。通常有一个C/C++客户端可以由Node.js扩展程序使用。
还有一些标准化的线路协议,JMS代理通常支持现有的Node.js扩展使用。 AMQP 1.0, MQTT, STOMP。此外,许多消息代理都有一些可能性(插件或类似)通过HTTP接受消息。
因此,请探索您的JMS实现具有哪些可能的通信方法。
作为后备解决方案,只需编写一个小的Java程序,监听HTTP并生成JMS消息,即可从您的Node.js应用程序调用。