在Symfony中执行RabbitMQ使用者时,“读取数据时出错”

我有一个RabbitMQ容器和一个带有Symfony 3.1.x项目的PHP 7容器,它使用OldSoundRabbitMqBundle执行一个RabbitMQ使用者。

运行执行test使用者的命令时:

 bin/console rabbitmq:consumer -w test 

我得到以下错误:

[PhpAmqpLib \exception\ AMQPIOException]

读取数据时出错。 收到0而不是预期的7个字节

我的设置非常简单,我检查了以下几点:

  • RabbitMQ是最新版本(3.6.5)
  • configuration的hostvhostuserpassword参数是正确的
  • 启用了mbstring扩展

build立一个项目来重现问题真的很容易。

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

这里有一些亮点:

泊坞窗,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服务是实现ConsumerInterface接口的一个非常简单的类。

有人对我的问题有任何想法吗?

答案很简单。 我不得不在我的config.yml改变这个:

 old_sound_rabbit_mq: connections: default: # ... use_socket: true 

至:

 old_sound_rabbit_mq: connections: default: # ... use_socket: false 

请注意, false是默认值。