<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                如果接收的消息routeKey很多,那我們就的一行行添加(當然你可以采用foreach循環),如果我們要對日志的來源進行再分類,比方說有register、login、mail等等,那么久需要bind很多的routeKey,大概會如下: ~~~ $queue->bind('exchange.log','register.warning'); $queue->bind('exchange.logs','register.error'); $queue->bind('exchange.logs','register.critical'); $queue->bind('exchange.logs','register.alert'); $queue->bind('exchange.logs','register.emergency'); ....... $queue->bind('exchange.log','mail.warning'); $queue->bind('exchange.logs','mail.error'); $queue->bind('exchange.logs','mail.critical'); $queue->bind('exchange.logs','mail.alert'); $queue->bind('exchange.logs','mail.emergency'); ~~~ 那么我們有沒有一種辦法來處理這種情況呢,這就是本章的學習的exchange中topic類型。 使用topic類型后,routKey支持模糊匹配,但僅支持以下2種寫法: *(星號)可以代表一個單詞 #(井號)可以代表零個或多個單詞 //請務必注意是單詞,此時的routeKey是使用.鏈接的字符串。 topic_send.php ~~~ <?php $config = [ 'host' => '127.0.0.1', 'vhost' => '/', 'port' => 5672, 'login' => 'guest', 'password' => 'guest' ]; $conn = new \AMQPConnection($config); $conn->connect(); $channel = new \AMQPChannel($conn); $channel->qos(0,0); $exchange = new \AMQPExchange($channel); $exchange->setName('exchange.all.logs'); $exchange->setType(AMQP_EX_TYPE_TOPIC); $exchange->setFlags(AMQP_DURABLE); $exchange->declareExchange(); //循環生成消息需要發布的消息 $origins = ['register','login','mail']; $levels = ['debug','info','notice','warning','error','critical','alert','emergency']; foreach ($origins as $origin) { foreach ($levels as $level) { $message = "[$origin]Message[$level]"; $routeKey = "$origin.$level"; //echo $message."======".$routeKey."\n"; $result = $exchange->publish($message, $routeKey); var_dump($result); } } ~~~ topic_receive.php ~~~ <?php $config = [ 'host' => '127.0.0.1', 'vhost' => '/', 'port' => 5672, 'login' => 'guest', 'password' => 'guest' ]; $conn = new \AMQPConnection($config); $conn->connect(); $channel = new \AMQPChannel($conn); $channel->qos(0,1); $queue = new \AMQPQueue($channel); $queue->setName("queue.all.errors"); $queue->setFlags(AMQP_DURABLE); $queue->declareQueue(); $queue->bind('exchange.all.logs','#.warning'); $queue->bind('exchange.all.logs','#.error'); $queue->bind('exchange.all.logs','#.critical'); $queue->bind('exchange.all.logs','#.alert'); $queue->bind('exchange.all.logs','#.emergency'); $queue->consume('processMessage',AMQP_AUTOACK); function processMessage($envelope, $queue) { global $i; echo "Message $i: " . $envelope->getBody() . "\n"; $i++; } ~~~
                  <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>

                              哎呀哎呀视频在线观看