デフォルトの取引所に発行したときに、確認が返ってこないようです。現在、この投稿で提案されている node-amqp のマスター ブランチを使用しています。
コード:
var amqp = require('amqp');
var conn = amqp.createConnection({ host: 'localhost' });
conn.once('ready', function () {
conn.publish('test_queue', 'test message', { /* empty options */ }, function (a, b) {
console.log('Publish complete.');
});
});
デフォルトの交換は、空の文字列を使用した直接交換だと思います (他のすべてのオプションはデフォルトです)。exchange.publish メソッドによると、confirm オプションが true の場合、指定されたコールバックが呼び出されます。自分で交換を作成しようとしましたが、運もありませんでした。
var amqp = require('amqp');
var conn = amqp.createConnection({ host: 'localhost' });
conn.once('ready', function () {
conn.exchange('', { confirm: true }, function (exchange) {
exchange.publish('test_queue', 'test message', { /* empty options */ }, function (a, b) {
console.log('Publish complete.');
});
});
});
RabbitMQ Web サイトの基本的な Python 受信スクリプトを使用して、メッセージを正常に発行していることを確認できます。
デフォルトの交換は、publish メソッド内で ack メッセージを発行しますか? 私はこれを間違って呼んでいますか?