Я создал простое приложение, которое отправляет сообщение клиенту с сервера RabbitMQ. Для этого я создал код отправителя, как показано ниже.NOT_FOUND - no queue 'node-topic-queue-one' in vhost '/'
var amqp=require('amqp');
var connection = amqp.createConnection({host:'localhost',login:'guest',password:'guest'});
connection.on('ready', function() {
// There is no need to declare type, 'topic' is the default:
var exchange = connection.exchange('node-topic-exchange');
console.log("publishing messages");
exchange.publish("topic_a.subtopic_a", {msg:'First Message'});
exchange.publish("topic_a.subtopic_b", {msg:'Second Message'});
exchange.publish("topic_b.subtopic_b", {msg:'Third Message'});
});
connection.on('error',function (err) {
console.log('an error '+err);
});
и моей стороне приемника код, как показано ниже:
var amqp=require('amqp');
var connection = amqp.createConnection({host:'localhost',login:'guest',password:'guest'});
connection.on('ready', function() {
// There is no need to declare type, 'topic' is the default:
var exchange = connection.exchange('node-topic-exchange');
// Consumer:
var queue = connection.queue('node-topic-queue-one');
queue.bind(exchange, "topic_a.*");
queue.subscribe(function (message) {
// Get original message string:
console.log('Message : ' + message.msg);
});
});
connection.on('error',function (err) {
console.log('an error '+err);
});
проблема в том, that..it выдает ошибку, как, что
D:\node example\RabbitMQ Example>node worker1.js an error
Error: NOT_FOUND - no exchange 'node-topic-exchange' in vhost '/' an error Error: read ECONNRESET
Пожалуйста, помогите решить эту проблему вне .. ...
Я думаю, что вам нужно использовать узел. js event driven approach: «Обмен будет выдавать« открытое »событие, когда оно будет объявлено окончательно». (https://github.com/postwait/node-amqp#connectionexchangename-options-opencallback) - обмен не объявляется, когда вы пытаетесь его использовать. – Sigismondo
It works ,, !! но также я получил ту же ошибку в приемной стороне ... @ Sigismondo –
та же история там, и для очереди, как хорошо! На других языках (например, java) вам нужно явно «объявлять» обмены и очереди (т. Е. Создавать, если не существует), и для хорошей развязки своей хорошей практики делать это как для производителей, так и для потребителей. – Sigismondo