node.js - 使用 symfonyrabbitMq 进行 NodeJs 通信

标签 node.js docker rabbitmq symfony

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 创建了一个 Producer

 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 它什么也没显示给我

最佳答案

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

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

关于node.js - 使用 symfonyrabbitMq 进行 NodeJs 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202645/

相关文章:

actionscript-3 - 构建网络事件系统,我应该使用什么数据格式?

nginx - 使用HAproxy在Mesos集群中负载均衡Docker容器

Docker - mkdir 只读文件系统

java - Axon amqp 消息传递,未触发事件处理程序

node.js - 我正在evennode上部署我的nodejs应用程序,但我收到此错误

javascript - Chrome远程接口(interface): How to Wait Until a New Page Loads

javascript - 如何从sql中获取nodejs的数据并返回json?

node.js - 如何设置运行 nginx 配置来运行两个前端应用程序和一个后端服务器

rabbitmq - 如何在 react 堆中使用并行代码确认 celery 任务?

rabbitmq - 处理 Prometheus Gauge 中的陈旧数据