2017-08-04 137 views
0

我有三台PC,其中两台PC是生产商,一台是消费者。使用Python,我如何让他们相互沟通。我可以在localhost上做同样的事情,我遵循RabbitMQ网站上的教程。在那里他们提到我所要做的就是添加IP地址而不是本地主机,但这不起作用。请在这里帮忙。使用RabbitMQ将消息从一台PC发送到另一台

编辑:

我已经做了以下修改我的代码使用鼠来验证用户名和密码。我仍收到错误

为receive.py的代码如下:

import pika 

credentials = pika.PlainCredentials('sneha', 'sneha') 
connection = pika.BlockingConnection(pika.ConnectionParameters('[email protected]', 5672, '/', credentials)) 
channel = connection.channel() 

channel.queue_declare(queue='hello') 

def callback(ch, method, properties, body): 
    print(" [x] Received %r" % body) 

channel.basic_consume(callback, 
         queue='hello', 
         no_ack=True) 

print(' [*] Waiting for messages. To exit press CTRL+C') 
channel.start_consuming() 

我收到以下错误:

Traceback (most recent call last): 
    File "receive.py", line 4, in <module> 
    connection = pika.BlockingConnection(pika.ConnectionParameters('[email protected]', 5672, '/', credentials)) 
    File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in __init__ 
    self._process_io_for_connection_setup() 
    File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup 
    self._open_error_result.is_ready) 
    File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output 
    raise exceptions.ConnectionClosed() 
pika.exceptions.ConnectionClosed 
+0

添加您正在运行的代码。如果您在终端上看到还提及任何错误 –

+0

您尝试过什么? –

回答

0

教程使用guest RabbitMQ的用户帐户这是在全新安装时自动创建的并具有所有权限。然而,this account is restricted to connections from localhost only的目的是:由于其无限的权限,这将是一个安全问题的默认安装。这个帐户适合玩RabbitMQ,但不适合生产用途。

因此,在远程计算机上使用RabbitMQ时,它会拒绝与guest帐户的连接,并且您会收到ProbableAuthenticationError错误。

现在,你有两种解决方案:

  1. 的建议之一是创建另一个用户,给它适当的权限和使用它为您的应用程序。这在Access Control documentation中描述。

  2. guest帐户上禁用“仅限本地主机”保护。要做到这一点,你需要使用以下RabbitMQ的配置:

    [ 
        {rabbit, [ 
         {loopback_users, []} 
        ]} 
    ]. 
    

    请阅读documentation of loopback_users(你将不得不在这个页面,搜索loopback_users)。

+0

嗨,创建用户后,代码中是否会有任何更改?或者代码会保持与我之前提到的相同? –

+0

您需要将其更改为指定用户名和密码。我不知道Pika,所以请参阅Pika的文档以了解如何做到这一点。 –

相关问题