2016-05-06 8 views
1

Pythonを使用してRabbitMQキューにデータを送信しようとしています。Python PikaとRabbitMQ公開するために接続する

私はサーバーを構成していませんが、他のプロセス用に実行しています。私は働いているログインがあり、問題なしでWeb出力にアクセスできます。

サンプルコードのRabbitMQのpythonのために与えピカを使用しています。

#!/usr/bin/env python 
import pika 

connection = pika.BlockingConnection(pika.ConnectionParameters(
     host='xxx.xxx.xxx.xxx:xxxxx')) 
channel = connection.channel() 

channel.queue_declare(queue='Test') 

channel.basic_publish(exchange='', 
         routing_key='hello', 
         body='Hello World!') 
print(" [x] Sent 'Hello World!'") 
connection.close() 

これが実行され、私をキックオフ:

pika.exceptions.ConnectionClosed 

ない上に行くことがたくさんが、安全な仮定がログインの問題ですので、サンプルコードにはログイン情報がありません。

私はそれを追加しました。

import pika 
import sys 
try: 

    credentials = pika.PlainCredentials('username', 'password') 


    connection = pika.BlockingConnection(pika.ConnectionParameters('xxx.xxx.xxx.xxx', 
              xxxxx, 
              'virtualhostnamehere', 
              credentials,)) 

    channel = connection.channel() 
    channel.queue_declare(queue='Test') 

    channel.basic_publish(exchange='amq.direct', 
          body='Hello World!') 
    print(" [x] Sent 'Hello World!'") 
except: 
    e = sys.exc_info()[0] 
    print e 

私を与える前に良い数分間の周りにハングアップするようだ:

<class 'pika.exceptions.IncompatibleProtocolError'> 

サーバーは罰金他のサービスを実行しているが、私は私が間違って何をやったか特定するように見えることはできません。

ログインが正しいです。 vhostの名前が正しい。ホストは正しいです。交換名が正しい。

正しい方向にあると分かります。

更新:

私は同じ結果と同様URLParametersを使用してみました。

parameters = pika.URLParameters('amqp://username:[email protected]:xxxxx/notmyvhostname') 
connection = pika.BlockingConnection(parameters) 
+0

使用しているポートとユーザ名はどれですか? – cantSleepNow

+0

私はログインを「username」と「password」で、ポートをxxxxxに置き換えました。 – PoweredByCoffee

+0

しかし、私はポートが何も変わらないと思う。それはポート15672で、ログインはブラウザの出力を取得するのと同じです。 – PoweredByCoffee

答えて

3

しかし、私はポートは何も変わりませんね。それはポート15672で、 のログインはブラウザの出力を取得するのと同じです。

ポート5672を使用するか、AMQPリスナー用に設定したデフォルトポートを使用します。ポート15672はHTTP経由で行われるWeb UIアクセス用ですので、互換性のないプロトコルエラー

+0

私は3つの異なるライブラリを試してみましたが、HTTP APIに興味深いアプローチをしてポートを変更しました。まあ、それはまだチャネルが閉鎖されているが、少なくとも接続していると書いていません。愚かな気持ちに感謝し、私はそれを早く考えなかった。 – PoweredByCoffee

+0

Np - 私たちすべてに起こります;) – cantSleepNow

関連する問題