Websockets, SockJs, Stomp, Spring, RabbitMQ, автоматическое удаление пользовательских очередей

Я надеюсь, что кто-то может помочь мне с этой проблемой. Я использую поддержку Websocket Spring с SockJs и StompJs. Я подписался на такую ​​очередь:

    var socket = new SockJS(localhost + 'websocket');
    stompClient = Stomp.over(socket);
    stompClient.connect('', '', function(frame) {
        stompClient.subscribe("/user/queue/gotMessage", function(message) {
            gotMessage((JSON.parse(message.body)));
        });
    }, function(error) {
    });

Это отлично работает с SimpMessageSendingOperations Spring. НО есть одна большая проблема. Имя очереди выглядит так: gotMessage-user3w4tstcj, и она не объявлена ​​как очередь автоматического удаления, но это то, что мне нужно. В противном случае у меня есть 10 тыс. неиспользуемых очередей. В тот момент, когда в очереди нет потребителя, очередь должна быть удалена. Как я могу это предположить?


person Ogniute    schedule 29.07.2014    source источник
comment
Похоже на какую-то проблему, связанную с библиотекой, что говорится в официальных документах об очистке временных очередей?   -  person pinepain    schedule 30.07.2014
comment
единственное, что я нашел, это: например, RabbitMQ создает очередь автоматического удаления с такими пунктами назначения, как «/exchange/amq.direct/a», но тогда отправка конкретного пользователя невозможна.   -  person Ogniute    schedule 04.08.2014


Ответы (1)


была такая же проблема, из документации:

RabbitMQ создает очереди автоматического удаления, когда используются такие адреса, как /exchange/amq.direct/position-updates. Так что в этом случае клиент может подписаться на /user/exchange/amq.direct/position-updates.

не забудьте добавить «/exchange/» в качестве префикса назначения в конфигурации ретрансляции брокера stomp

person Yoav A    schedule 16.08.2014
comment
спасибо... сработало. Я просто забыл добавить '/exchange/' в конфигурацию реле Stomp Broker. - person Ogniute; 18.08.2014