标签:direct 模式 echo queue connection RabbitMq new channel connect
生产者:product.php
$conConfig = [ 'host' => '127.0.0.1', 'port' => '5672', 'login' => 'sblack', 'password' => '123456', 'vhost' => '/', ]; try { $connection = new AMQPConnection($conConfig); $connection->connect(); if(!$connection->isConnected()){ echo 'rabbitmq connect fail'; die(); } //新建通道 $channel = new AMQPChannel($connection); //使用默认exchange $exchange = new AMQPExchange($channel); for($i=6;$i<20;$i++){ $message = [ 'name' => '默认交换机,消息'.$i, 'info' => 'hello world', ]; //发送消息,为消息指定routing key,成功返回true,失败返回false $state = $exchange->publish(json_encode($message,JSON_UNESCAPED_UNICODE),'quue2'); if($state){ echo 'success'.PHP_EOL; }else{ echo 'fail'.PHP_EOL; } } //关闭$channel $channel->close(); //关闭连接 $connection->disconnect(); } catch(Execption $e){ echo $e->getMessage(); }
消费者:consumer.php
$conConfig = [ 'host' => '127.0.0.1', 'port' => '5672', 'login' => 'sblack', 'password' => '123456', 'vhost' => '/', ]; //默认direct 模式 try { $connection = new AMQPConnection($conConfig); $connection->connect(); if(!$connection->isConnected()){ echo 'rabbitmq connect fail'; die(); } //新建通道 $channel = new AMQPChannel($connection); // $queue = new AMQPQueue($channel); $queue->setName('quue2'); $queue->setFlags(AMQP_DURABLE); //声明队列,不需要对Queue进行显示绑定到交换机和指定Queue的routing key $queue->declareQueue(); $queue->consume(function($envelope,$queue){ $msg = $envelope->getBody().PHP_EOL; error_log($msg,3,"queue.log"); },AMQP_AUTOACK); //关闭连接 $connection->disconnect(); } catch(Execption $e){ echo $e->getMessage(); }
标签:direct,模式,echo,queue,connection,RabbitMq,new,channel,connect 来源: https://www.cnblogs.com/sblack/p/16360112.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。