繁体   English   中英

Rabbitmq 生产者(symfony 3)和消费者错误(NodeJs)

[英]Rabbitmq producer (symfony 3 ) and error with consumer ( NodeJs )

我用 symfony 3 创建了一个 Producer

生产者控制器

class ProducerController extends Controller
{

/**
* @Route("/producer", name="producer")
*/
 public function uploadAction(Request $request)
 {

$userId =  mt_rand(1, 1000000);

$message = \Swift_Message::newInstance()
    ->setSubject('Sujet de l\'email')
    ->setFrom('test@xxx.com')
    ->setTo('destinaire@xxx.com')
    ->setBody($this->renderView('index.html.twig', ['userId' =>$userId]), 'text/html');

$this->get('old_sound_rabbit_mq.message_producer')->publish(serialize($message));

return $this->render('welcome.html.twig', ['userId' => $userId]);

}

}

配置文件

 old_sound_rabbit_mq:
connections:
    default:
    host:     '192.168.99.10' # hostname and port of the rabbitmq server
    port:     55672
    user:     'user'
    password: 'pass'
    vhost:    '/'
    lazy:     true # a lazy connection avoids unnecessary connections to the broker on every request

producers:
message:
    connection:       default # connects to the default connection configured above
    exchange_options: {name: 'message', type: direct}

在我用 symfony 创建了一个消费者之后,程序工作正常,但现在我想用 NodeJs 创建这个消费者

NodeJs

消费者.js

 var http = require('http'),
 url = require('url'),
 amqp = require('amqplib');

 var rabbitMQ = amqp.createConnection({url: "amqp://user:pass@192.168.99.10:55672"},{defaultExchangeName: ''});


 rabbitMQ.addListener('ready', function(){
 var queue = rabbitMQ.queue('',{'exclusive':true}, function(q){

  //get all messages for the rabbitExchange
  q.bind('rabbitExchange','#');
  console.log("inqueue")
  // Receive messages
  q.subscribe(function (message) {
    // Print messages to stdout
    console.log("received message");
    console.log(message.data.toString());
  });
});

});

包.json

{
  "name": "amqp_queue-service",
  "version": "1.0.0",
  "description": "RabbitMQ amqp.node",
  "main": "app.js",
  "author": "",
  "license": "MIT",
  "dependencies": {
  "amqplib": "^0.3.0",
  "socket.io": "^1.7.2"
  }
}

当我执行 app.js 时它什么也没显示

当我执行 consumer.js 它向我展示

var rabbitMQ = amqp.createConnection({url: "amqp://user:pass@192.168.99.10:55672"},{defaultExchangeName: ''});
                ^

TypeError: amqp.createConnection is not a function
at Object.<anonymous> (C:\Users\SOTHNYR\Desktop\NodeJS\consumer.js:7:21)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
at Module.runMain (module.js:590:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:149:9)
at bootstrap_node.js:509:3

我认为应该是var rabbitMQ = amqp.connect("amqp://user:pass@192.168.99.10:55672"});

来自: http : //www.squaremobius.net/amqp.node/channel_api.html#connect

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM