<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[info] return 機制 **什么是Return機制?** Return Listener用于處理一些不可路由的消息。也是生產段添加的一個監聽。 我們的消息生產者,通過指定一個Exchange和Routingkey,把消息送達到某一個隊列中去,然后我們的消費者監聽隊列,進行消息處理操作。但是在某些情況下,如果我們在發送消息的時候,當前的exchange不存在 或者指定的路由key路由不到,這個時候如果我們需要監聽這種不可達的消息,就要使用Return Listener。 ***** **Retrun 機制流程圖:** ![](https://img.kancloud.cn/5d/a5/5da570c8b2f472704428738f7c721603_1611x962.png) ***** **實現Return機制:basic_return_noReturn.php** ~~~ <?php require_once __DIR__ . '/../vendor/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Exchange\AMQPExchangeType; use PhpAmqpLib\Message\AMQPMessage; $connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest'); $channel = $connection->channel(); // declare exchange but don`t bind any queue $channel->exchange_declare('hidden_exchange', AMQPExchangeType::TOPIC); $message = new AMQPMessage("Hello World!"); $wait = true; // 監聽器 $returnListener = function( $replyCode, $replyText, $exchange, $routingKey, $message ) use ($wait){ $GLOBALS['wait'] = false; echo "return:", $replyCode,"\n", $replyText,"\n", $exchange,"\n", $routingKey,"\n", $message->body,"\n"; }; $channel->set_return_listener($returnListener); //echo " [x] Sent non-mandatory ..."; $channel->basic_publish( $message, 'hidden_exchange', 'rkey', ture ); //echo " done.\n"; while ($wait) { $channel->wait(); } $channel->close(); $connection->close(); ~~~ 1. 運行代碼 未找到路由鍵,導致監聽到錯誤碼:312 錯誤信息:NO_ROUTE ![](https://img.kancloud.cn/e9/d1/e9d13ba257e46ff8abecc1744399ed0e_497x152.png) 2. 如果交換機不存在,PHP代碼底層直接報錯 ![](https://img.kancloud.cn/6c/fd/6cfdde0692a9eade295bdd7c4c7846ad_629x317.png) ![](https://img.kancloud.cn/4d/e3/4de3265fb3cf877815c0b3d958722a4d_852x286.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看