#node.js #rabbitmq #amqp
#node.js #rabbitmq #amqp
Вопрос:
все, что я разрабатываю приложение, в котором клиент создает очередь с помощью сервера rabbitmq, и есть также другой сервер, который будет управлять всеми вычислениями через сервер.
Я сталкиваюсь с проблемой обнаружения уничтожения очереди на стороне сервера. Например: очередь с именем «a» создана в клиенте Android, и теперь пользователь собирается закрыть приложение, что время очереди уничтожит. но сервер все еще находится в неизвестном состоянии этой очереди. итак, я хочу прослушать любое событие или любой метод для вызова обнаружения, что очередь была уничтожена со стороны клиента.
Спасибо
Ответ №1:
Вы должны использовать уведомление об отмене потребителя.
Если вы используете модуль node-amqp, вам следует установить consumer_cancel_notify
значение true и, подписываясь на очередь, проверять basicCancel
.
q.subscribe(function (message, headers, deliveryInfo, messageObject) {
// Check for basicCancel
});
Комментарии:
1. Означает, что я также должен подписаться на очередь со стороны сервера? если клиент создает очередь с именем «a», то серверу также необходимо создать очередь и подписаться на нее?? я использую библиотеку node-amqp. Спасибо
2. @HiteshArtoon Ваш клиент подписывается на созданную им очередь? Это странно. Обычно у вас есть клиент, отправляющий сообщения в очередь, а другой клиент (например, ваш сервер) подписывается на него и получает уведомления.
3. Не могли бы вы, пожалуйста, поместить сюда пример скрипта клиент-сервера nodejs. я думаю, что если я подпишусь на эту очередь с сервера, который создаст соединение с сокетом. таким образом, при будущей загрузке произойдет сбой.