thinkPHP5如何使用rabbitmq

thinkPHP5如何使用rabbitmq

thinkphp5如何使用rabbitmq

安装好 tp5 的 rabbitmq 扩展后,在项目根目录文件添加文件 rabbitmq.php 引导启动 rabbitmq。

<?php define(&#39;APP_PATH&#39;, __DIR__ . &#39;/application/&#39;); define(&#39;BIND_MODULE&#39;,&#39;rabbitmq/Client&#39;); // 加载框架引导文件 require __DIR__ . &#39;/thinkphp/start.php&#39;;

生成者

  private function queueEvent($message)     { //        error_log("n******" . date("His") . "********n" . print_r($message, 1) . "n*************n", 3,  'messag_event.log');         dump($message);         //设置你的连接         $conn_args = array('host' =&gt; 'ip', 'port' =&gt; '5672', 'login' =&gt; 'ymq', 'password' =&gt; '123456',         'vhost'=&gt;'/');             $content = $message; //创建连接和channel         $conn = new AMQPConnection($conn_args);         if (!$conn-&gt;connect()) {             die("Cannot connect to the broker!n");         }         $channel = new AMQPChannel($conn);   //创建交换机         $e_name = 'MQTT_device_event'; //交换机名         $ex = new AMQPExchange($channel);         $ex-&gt;setName($e_name); //        $ex-&gt;setType(AMQP_EX_TYPE_TOPIC); //direct类型         $ex-&gt;setType(AMQP_EX_TYPE_DIRECT); //direct类型         $ex-&gt;setFlags(AMQP_DURABLE); //持久化         $ex-&gt;declareExchange();     }

相关推荐:《ThinkPHP教程

立即学习PHP免费学习笔记(深入)”;

运行 php 目录运行生产者

消费者

 public function index()     {         //连接RabbitMQ         $conn_args = array('host' =&gt; 'ip', 'port' =&gt; '5672', 'login' =&gt; 'ymq', 'password' =&gt; '123456', 'vhost'          =&gt; '/');           $e_name = 'MQTT_device_event'; //交换机名         $q_name = 'q_event'; //队列名         $k_route = 'key_event'; //路由key  //创建连接和channel         $conn = new AMQPConnection($conn_args);         if (!$conn-&gt;connect()) {             die("Cannot connect to the broker!n");         }         $channel = new AMQPChannel($conn);  //创建交换机         $ex = new AMQPExchange($channel);         $ex-&gt;setName($e_name);         $ex-&gt;setType(AMQP_EX_TYPE_DIRECT); //direct类型         $ex-&gt;setFlags(AMQP_DURABLE); //持久化         $ex-&gt;declareExchange(); //创建队列         $q = new AMQPQueue($channel);         $q-&gt;setName($q_name);         $q-&gt;setFlags(AMQP_DURABLE); //持久化         $q-&gt;declareQueue();     //最好队列object在这里declare()下,否则如果是新的queue会报错  //绑定交换机与队列,并指定路由键,可以多个路由键         $q-&gt;bind($e_name, $k_route); //$q-&gt;bind($e_name, 'key_33');   //阻塞模式接收消息         echo "Message:n";         while(True){             $q-&gt;consume(function($envelope, $queue) {                 $msg = $envelope-&gt;getBody();                 //处理数据                 echo $msg . PHP_EOL; //处理消息                 $queue-&gt;ack($envelope-&gt;getDeliveryTag()); //手动发送ACK应答             });             //$q-&gt;consume('processMessage', AMQP_AUTOACK); //自动ACK应答         }           $conn-&gt;disconnect();      }

执行下命令 php rabbitmq

启动即可

查看队列是否被消费

登录 http://127.0.0.115672/#/queues  地址

thinkPHP5如何使用rabbitmqthinkPHP5如何使用rabbitmq

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享