hyperf / amqp

MIT License
17 stars 14 forks source link

【转到hyperf中提出】当交换机类型为 fanout ,composer中没有指定 routeKey 时,没有 执行 queueBind #7

Closed zqe closed 3 years ago

zqe commented 3 years ago

当交换机类型为fanout时,未指定routekey 时, 将不会接受到推送的事件 我使用的版本是

$  composer info | grep amqp
hyperf/amqp                          v2.0.18 A amqplib for hyperf.

hyperf\amqp\src\Consumer.php 文件中

namespace Hyperf\Amqp;
class Consumer extends Builder
{
        // 第 130 行
        $routineKeys = (array) $message->getRoutingKey();
        foreach ($routineKeys as $routingKey) {
            $channel->queue_bind($message->getQueue(), $message->getExchange(), $routingKey);
        }
}

造成此问题的原因是 @Composer 注解默认的routekey 设置为 []