2014-02-16 45 views
3

當試圖從筆記本電腦發送消息到另一臺筆記本電腦與pika和rabbitmq我得到這個錯誤。任何想法如何解決這個問題?pika發送郵件到rabbitmq超時

WARNING:pika.adapters.base_connection:Could not connect due to "timeout," retrying in 2 sec 
ERROR:pika.adapters.base_connection:Could not connect: timeout 
Traceback (most recent call last): 
    File "C:/Users/Peter/Desktop/Blimp182-development(1)/Blimp182-development/Blimp182/send.py", line 7, in <module> 
    connection = pika.BlockingConnection(parameters) 
    File "C:\Python27\lib\site-packages\pika\adapters\base_connection.py", line 61, in __init__ 
    super(BaseConnection, self).__init__(parameters, on_open_callback) 
    File "C:\Python27\lib\site-packages\pika\connection.py", line 513, in __init__ 
    self._connect() 
    File "C:\Python27\lib\site-packages\pika\connection.py", line 804, in _connect 
    self._adapter_connect() 
    File "C:\Python27\lib\site-packages\pika\adapters\blocking_connection.py", line 138, in _adapter_connect 
    super(BlockingConnection, self)._adapter_connect() 
    File "C:\Python27\lib\site-packages\pika\adapters\base_connection.py", line 120, in _adapter_connect 
    self.params.retry_delay) 
pika.exceptions.AMQPConnectionError: 2.0 

過程與退出代碼完成1

所使用的代碼是在這裏:

import pika 
import logging 
logging.basicConfig() 
credentials = pika.PlainCredentials('guest','guest') 
parameters = pika.ConnectionParameters('10.43.12.76', 55672, '/', credentials) 
connection = pika.BlockingConnection(parameters=parameters) 
channel = connection.channel() 
channel.queue_declare(queue='hello') 
channel.basic_publish(exchange='', 
         routing_key='hello', 
         body='Hello World!') 
print " [x] Sent 'Hello World!'" 
connection.close() 

回答

0

我不知道你正在使用的RabbitMQ的版本,但被用於之前的版本端口55672到3.0。使用新版本5672。我知道這個問題剛纔被問到,但3.0在2012年發佈。這可能很容易成爲你的超時問題的原因。

0

1)的端口號是不正確(它應該是5672)

2)「客人」的用戶不應是遠程連接。如果你想使用,它需要在服務器上進行一些額外的配置。有關配置,請參閱:https://www.rabbitmq.com/access-control.html

3)確保端口沒有被阻塞。打開下面的端口。

須藤的iptables -I INPUT -p根據tcp --dport 5672 --syn -j ACCEPT

須藤的iptables -I INPUT -p根據tcp --dport 5673 --syn -j ACCEPT

須藤iptables的-I INPUT -p tcp --dport 15672 --syn -j ACCEPT

謝謝, Saravanan S.