2016-09-22 28 views
2

我有一個RabbitMQ容器和一個PHP 7容器,其中包含Symfony 3.1.x項目,該項目使用OldSoundRabbitMqBundle執行RabbitMQ使用者。在Symfony中執行RabbitMQ使用者時出現「讀取數據時出錯」

當運行這個命令執行test消費者:

bin/console rabbitmq:consumer -w test 

我收到以下錯誤:

[PhpAmqpLib\Exception\AMQPIOException]

Error reading data. Received 0 instead of expected 7 bytes

我的設置是非常簡單的,我檢查了以下幾件事:

  • RabbitMQ是其最新版本(3.6.5)
  • 配置的hostvhostuserpassword參數都正確
  • mbstring擴展啓用

這真的很容易建立一個項目,重現該問題。

示例項目爲available on GitHub,並在自述文件中提供了說明,僅通過幾個步驟即可重現問題。

這裏有一些亮點:

泊塢窗,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一個非常簡單的類接口。

有人會對我的問題有任何想法嗎?

+0

這發生沒有任何懸而未決的消息? – yceruto

+0

@Yonel是的,即使沒有任何懸而未決的信息也會發生。我在RabbitMQ方面看不到任何錯誤。 –

+0

來自'SocketIO.php'或'StreamIO.php'的異常? – yceruto

回答

2

答案非常簡單。我曾在我的config.yml可以改變:

old_sound_rabbit_mq: 
    connections: 
     default: 
      # ... 

      use_socket: true 

到:

old_sound_rabbit_mq: 
    connections: 
     default: 
      # ... 

      use_socket: false 

注意false是默認值。

+1

太棒了!從此參數取決於用於新連接的連接工廠類(+1) – yceruto

+0

是的,正好。感謝您的幫助@Yonel。 –

相關問題