2016-11-29 9 views
0

У меня есть активный mq-прослушиватель на основе JavaScript, который использует топовые и веб-сокеты. Я смог отправлять тестовые сообщения в активный mq и получать их ,Как использовать правильный протокол для приема активного mq-веб-сокета stomp из java-программы

Что мне действительно нужно, так это его необходимо отправить с помощью кода на основе Java.

  • нормально ли это иметь JavaScript прослушивает веб-сокетов/топать и код Java использовать протокол TCP?
  • Если все в порядке, все порты должны быть одинаковыми?

У меня возникли проблемы с получением данных на JavaScript. Однако я вижу эту тему быть enquued в активном 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(); 

ответ

1

Клиенты могут взаимодействовать друг с другом через протоколы и механизмы транспорта без проблем. Клиент STOMP на WebSocket или любой другой порт (TCP, SSL и т. Д.) Может отправлять на тему, и клиент AMQP, MQTT или OpenWire может получать сообщение до тех пор, пока протокол поддерживает содержание сообщения, то же самое относится к обратному случай отправки AMQP, MQTT или OpenWire и получения STOMP.

Дело, о котором вы упомянули, довольно стандартно. Код, который вы опубликовали, используется клиентом OpenWire для отправки в тему «vrwrThreat». URI, используемый в фабрике подключений, слегка отключен, поскольку вы добавили «/ stomp», который не имеет смысла. Поскольку вы отправляете тему, вам необходимо убедиться, что клиент, который должен получить сообщение, активен во время передачи, иначе сообщение будет удалено. Также вам нужно убедиться, что обе работают в одной и той же теме, что неясно из фрагментов кода.