zoukankan      html  css  js  c++  java
  • rabbitmq使用__php客户端(消息接收者)

    <?php
    
    //配置信息 
    $conn_args = array( 
        'host' => 'localhost',  
        'port' => '5672',  
        'login' => 'guest',  
        'password' => 'guest', 
        'vhost'=>'/' 
    );   
    $e_name = 'test_ex'; //交换机名 
    $q_name = 'test_queue'; //队列名 
    $k_route = 'test'; //路由key 
     
    //创建连接和channel 
    $conn = new AMQPConnection($conn_args);   
    if (!$conn->connect()) {   
        die("Cannot connect to the broker!\n");   
    }   
    $channel = new AMQPChannel($conn);   
     
    //创建交换机    
    $ex = new AMQPExchange($channel);   
    $ex->setName($e_name); 
    $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型  
    $ex->setFlags(AMQP_DURABLE); //持久化 
    echo "Exchange Status:".$ex->declare()."\n";   
       
    //创建队列    
    $q = new AMQPQueue($channel); 
    $q->setName($q_name);   
    $q->setFlags(AMQP_DURABLE); //持久化  
    echo "Message Total:".$q->declare()."\n";   
     
    //绑定交换机与队列,并指定路由键 
    echo 'Queue Bind: '.$q->bind($e_name, $k_route)."\n"; 
     
    //阻塞模式接收消息 
    echo "Message:\n";   
    while(True){ 
        $q->consume('processMessage');   
        //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答  
    } 
    $conn->disconnect();   
     
    /**
     * 消费回调函数
     * 处理消息
     */ 
    function processMessage($envelope, $queue) { 
        $msg = $envelope->getBody(); 
        echo $msg."\n"; //处理消息 
        $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答 
    } 
  • 相关阅读:
    ubuntu使用iso作为本地源
    ubuntu配置简单的DNS服务器
    core data
    Core Animation教程
    制作framework&静态库
    notes
    textkit
    coretext
    nsset
    iOS Development Sites
  • 原文地址:https://www.cnblogs.com/mingaixin/p/2743780.html
Copyright © 2011-2022 走看看