"Error reading data" 在 Symfony 中执行 RabbitMQ 消费者时

"Error reading data" while executing a RabbitMQ consumer in Symfony

我有一个 RabbitMQ 容器和一个带有 Symfony 3 的 PHP 7 容器。1.x 使用 OldSoundRabbitMqBundle.

执行 RabbitMQ 消费者的项目。

当运行这条执行test消费者的命令时:

bin/console rabbitmq:consumer -w test

我收到以下错误:

[PhpAmqpLib\Exception\AMQPIOException]

Error reading data. Received 0 instead of expected 7 bytes

我的设置非常简单,我检查了以下内容:

设置项目来重现问题真的很容易。

示例项目是 available on GitHub,README 文件中提供了说明,只需几个步骤即可重现问题。

以下是一些要点:

docker-compose.yml

version: '2'
services:
  php:
    build: ./docker/php/
    links:
      - rabbitmq
    volumes:
      - ./src:/var/www/rabbitmq-test
    working_dir: /var/www/rabbitmq-test

  rabbitmq:
    image: rabbitmq:3.6-management

config.yml

old_sound_rabbit_mq:
    connections:
        default:
            host:     'rabbitmq'
            port:     5672
            user:     'guest'
            password: 'guest'
            vhost:    '/'
            lazy:     false
            # ...
    producers:
        # ...
    consumers:
        test:
            connection:       default
            exchange_options: {name: 'test', type: direct}
            queue_options:    {name: 'test'}
            callback:         test_consumer

test_consumer 服务是一个非常简单的 class 实现 ConsumerInterface 接口。

有人知道我的问题吗?

答案非常直截了当。我必须在我的 config.yml:

中更改它
old_sound_rabbit_mq:
    connections:
        default:
            # ...

            use_socket: true

至:

old_sound_rabbit_mq:
    connections:
        default:
            # ...

            use_socket: false

请注意,false 是默认值。