【问题标题】:Communicate nodeJs with symfony rabbitMq与 symfony rabbitMq 通信 nodeJs
【发布时间】:2017-02-13 11:11:37
【问题描述】:

Node Js:我创建了一个带有 nodejs 和套接字的消费者,用于与之通信 rabbitMq 和 symfony

文件:consumer.js

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


amqp.connect('amqp://user:pass@192.168.99.10:55672', function(err, conn) {
conn.createChannel(function(err, ch) {
var q = 'hello';

ch.assertQueue(q, {durable: false});
console.log(" [*] Waiting for messages in %s. To exit press CTRL+C", q);
ch.consume(q, function(msg) {
  console.log(" [x] Received %s", msg.content.toString());
  }, {noAck: true});
 });
});

文件:App.js

 var server = require('http').createServer();
 var io = require('socket.io')(server);

io.on('connection', function(client){
console.log('here');
client.on('event', function(data){});
client.on('disconnect', function(){});
 });
server.listen(3000);

Symfony 3

我用 symfony 3 创建了一个生产者

 ProducerController

 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]);

}

}

config.yml

  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}

现在的问题是我不知道如何与生产者和消费者沟通。 node consumer.js 执行正常并等待消息 node app.js 它什么也没显示

【问题讨论】:

  • 根据标签,您正在使用 docker。发布您使用的任何 docker 命令。
  • just docker-compose up rabbitMq 与 docker 和 symfony 一起工作

标签: node.js docker rabbitmq symfony


【解决方案1】:

看起来您可能没有发布到同一个队列。

在进一步试验之前,我会在 PHP 和 Javascript 中使用 docs, exactly as they are 进行发送和接收。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多