/ / Помилка під час підтвердження повідомлення stomp - весна, websocket, activemq, stomp

Помилка під час підтвердження повідомлення stomp - spring, websocket, activemq, stomp

Ми використовуємо весняний стомп над веб-сокетами, підтримуваний ActiveMQ 5.11.1. Коли клієнт підтверджує повідомлення, я отримую це виключення:

"<<< ERROR

тип контенту: text / plain повідомлення: Неочікуваний ACK отримано для ідентифікатора повідомлення [IDcjanus-61128-1430365808166-2c1c-1c1c1] довжина вмісту: 722

org.apache.activemq.transport.stomp.ProtocolException: Неочікуваний ACK, отриманий для ідентифікатора повідомлення [ID: janus-61128-1430365808166-2: 1: -1: 1: 1] на org.apache.activemq.transport.stomp.ProtocolConverter.onStompAck (ProtocolConverter.java:462) на org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommand (ProtocolConverter.java:247) на org.apache.activemq.transport.stomp.StompTransportFilter.onCommand (StompTransportFilter.java:75) на org.apache.activemq.transport.TransportSupport.doConsume (TransportSupport.java:83) на org.apache.activemq.transport.tcp.TcpTransport.doRun (TcpTransport.java:214) на org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:196) at java.lang.Thread.run (Thread.java:744)

Ось код клієнта:

  var sub_id = stompClient.subscribe("/user/guest/msg", function(greeting){
x = JSON.parse(greeting.body);
var message_id = greeting.headers["message-id"]
stompClient.ack(message_id, sub_id);
}, {ack: "client"});

Я постарався встановити ack до клієнта-особистості та що didn''t допомога. Чи може хто-небудь сказати мені, що мені не вистачає / що роблю неправильно?

Відповіді:

0 для відповіді № 1

Яка версія STOMP (1.0, 1.1 або 1.2) використовує з'єднання? STOMP 1.2 має a порушення зміни:

Кадр ACK ПОВИНЕН включати заголовки ідентифікатора, що відповідають заголовку ack заголовка Повідомлення повідомляється.

Я пропоную захопити трафік STOMP з допомогою пакета сніфер або відладчика і порівняти заголовки зі специфікацією.