javascript - 如何使用正确的协议(protocol)从基于java的程序接收activemq websocket stomp

标签 javascript java websocket activemq stomp

我有一个基于 JavaScript 的主动 mq 监听器,它使用 stomp 和 Web 套接字。我能够向主动 mq 发送测试消息并接收它们。

我真正想要的是它需要从基于 Java 的代码发送。

  • 让 JavaScript 监听网络套接字/stomp 是否可以? java代码使用tcp吗?
  • 如果没问题,所有端口都应该相同吗?

我在 JavaScript 中接收数据时遇到问题。但是,我看到该主题已加入 Activity mq.thanks

function subscribeEndpoint(endpoint){
    var client = Stomp.client("ws://localhost:61614/stomp", "v11.stomp");
    var headers = { id:'JUST.FCX', ack: 'client'};
    client.connect("admin", "admin", function () {
        client.subscribe(endpoint,
             function (message) {
                 alert(message);
             }, headers);
    });
}

Java:

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616/stomp");

// Create a Connection
Connection connection = connectionFactory.createConnection();
connection.start();

// Create a Session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

// Create the destination (Topic)
Destination destination = session.createTopic("vrwrThreat");

// Create a MessageProducer from the Session to the Topic or Queue
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

// Create a messages
TextMessage message = session.createTextMessage(text);

producer.send(message);

// Clean up
session.close();
connection.close();

最佳答案

客户端可以毫无问题地跨协议(protocol)和传输机制相互通信。 WebSocket 或任何其他端口(TCP、SSL 等)上的 STOMP 客户端可以发送到主题,只要协议(protocol)支持消息内容,AMQP、MQTT 或 OpenWire 客户端就可以接收消息,反之亦然AMQP、MQTT 或 OpenWire 发送和 STOMP 接收的情况。

您提到的情况非常标准。您发布的代码似乎正在使用 OpenWire 客户端发送到主题“vrwrThreat”。连接工厂中使用的 URI 略有偏差,因为您添加了毫无意义的“/stomp”。由于您要发送到主题,因此需要确保接收消息的客户端在传输时处于 Activity 状态,否则消息将被丢弃。此外,您还需要确保两者都在同一主题上运行,这从您的代码片段中不清楚。

关于javascript - 如何使用正确的协议(protocol)从基于java的程序接收activemq websocket stomp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40872529/

相关文章:

java - 为什么 Files.isHidden() 不能正常工作?

websocket - Jetty 8.1.9.v20130131 Web 套接字问题

javascript - 相当于 Vue.js 中的 React 容器和展示组件

java - java 在退出循环时执行 method()

javascript - 如果模块位于不同的目录中,如何在 gruntfile 中使用 loadNpmTask 加载任务

java - 如何声明不同数据类型的数组

android - NodeJS + SocketIO 推送到移动应用

reactjs - 是否有一个现代的数据库更改 react 监听器

javascript - 控制单选按钮的复选框

javascript - Angular js : an arrray from one file to another