Как отправлять и получать данные из веб-сокета webstomp, предоставленного rabbitmq?

Я пишу приложение чата без явного веб-сокета на стороне сервера. Я использую RabbitMQ webstomp в качестве контейнера веб-сокетов и простой Javascript в качестве клиента для отправки и получения данных.

Ниже показан процесс: Браузер -> native websocket/sockjs -> rabbitmq /sockjs websocket (ws://127.0.0.1 :15674/ws или http://localhost:15674/stomp ) -> поставить сообщения в очередь.

Однако при тестировании приложения я не могу отправить данные напрямую на ws://127.0.0.1:15674/ws. Я просто могу подключиться к нему.

Я использую приведенный ниже шаблон для отправки и получения данных на клиентском Javascript.

  1. ws = новый WebSocket('ws://127.0.0.1:15674/ws');
  2. клиент = Stomp.over(ws);
  3. client.connect('гость','гость',on_connection,on_connect_error,'/');
  4. client.send(queue, {'ответить':'/temp-queue/logs', Priority: 9}, "msg" );
  5. client.onreceive = func()

person CS_noob    schedule 15.06.2016    source источник


Ответы (1)


Проблема, скорее всего, в вашем коде:

client.send(queue, {'reply-to':'/temp-queue/logs',priority: 9}, "msg" );

нужно отправить сообщение в тему

Я предлагаю посмотреть пример здесь: https://github.com/rabbitmq/rabbitmq-web-stomp-examples

Вот быстрый пример, который я сделал, начиная с исходного примера:

var client = Stomp.client('ws://localhost:15674/ws');
      client.debug = pipe('#second');

      var print_first = pipe('#first', function(data) {
          client.send('/topic/test', {"content-type":"text/plain"}, data);
      });
      var on_connect = function(x) {
          id = client.subscribe("/topic/test", function(d) {
               print_first(d.body);
          });
      };
      var on_error =  function() {
        console.log('error');
      };
      client.connect('guest', 'guest', on_connect, on_error, '/');

введите здесь описание изображения

person Gabriele Santomaggio    schedule 17.06.2016