問題タブ [php-amqplib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Symfony で RabbitMQ コンシューマを実行中に「データの読み取り中にエラーが発生しました」
OldSoundRabbitMqBundleを使用して RabbitMQ コンシューマーを実行する Symfony 3.1.x プロジェクトを含む RabbitMQ コンテナーと PHP 7 コンテナーがあります。
test
コンシューマーを実行するこのコマンドを実行すると、次のようになります。
次のエラーが表示されます。
[PhpAmqpLib\Exception\AMQPIOException]
データの読み取りエラー。予想される 7 バイトではなく 0 を受信しました
私のセットアップは非常に簡単で、次のことを確認しました。
- RabbitMQ は最新バージョン (3.6.5) です
- 構成された
host
、、、vhost
パラメータuser
がpassword
正しい mbstring
拡張機能が有効になっています
問題を再現するプロジェクトを設定するのは非常に簡単です。
サンプル プロジェクトはGitHubで入手できます。手順は README ファイルに記載されており、いくつかの手順で問題を再現できます。
ここにいくつかのハイライトがあります:
docker-compose.yml
config.yml
このサービスは、インターフェースをtest_consumer
実装する非常に単純なクラスです。ConsumerInterface
誰かが私の問題について何か考えがありますか?
php - キューがバインドされる前に送信された Exchange メッセージへのアクセス
3 つ目の RabbitMQ チュートリアルについて質問があります。プロデューサーが交換にメッセージを送信するときにコンシューマーが実行されているという保証がないことを除いて、私は似たようなものを実装しようとしています。
したがって、メッセージをファンアウト交換に発行するプロデューサーがあります。
パブリッシャーでキューを宣言し、それをエクスチェンジにバインドします。
そして、これが私の問題の根源です。チュートリアルには次のように書かれています。
キューがまだエクスチェンジにバインドされていない場合、メッセージは失われますが、それは問題ありません。コンシューマーがまだリッスンしていない場合は、メッセージを安全に破棄できます。
これらのメッセージをどうにかして保存する方法はありますか? コンシューマーが起動すると、以前に送信されたメッセージにアクセスしますか? その方法を見つけた唯一の方法は、プロデューサーとパブリッシャーで同じキューを宣言することですが、交換と異なるコンシューマー用の個別のキューを持つという目的を無効にします。
wso2 - PHP クライアントで wso2mb メッセージ ブローカー サーバーを使用する
wso2mb (wso2 メッセージ ブローカー バージョン 3.1.0) に基づいて、php クライアント ( php-amqplib libを使用) をサーバーに接続しようとしています。
amqp_consumer.php を使用し、常にこのエラーでロックされている場合、私は成功できませんでした:
情報 {org.wso2.andes.server.protocol.AMQProtocolEngine} - 処理中に SASL サーバーを作成できません: AMQPLAIN:[ConnectionStartOkBodyImpl: clientProperties={product=[LONG_STRING: AMQPLib]、プラットフォーム=[LONG_STRING: PHP]、バージョン=[ LONG_STRING: 2.6]、information=[LONG_STRING:]、copyright=[LONG_STRING:]、capabilities=[FIELD_TABLE: {authentication_failure_close=[BOOLEAN: true]、publisher_confirms=[BOOLEAN: true]、consumer_cancel_notify=[BOOLEAN: true]、exchange_exchange_bindings =[BOOLEAN: true]、basic.nack=[BOOLEAN: true]、connection.blocked=[BOOLEAN: true]}]}、メカニズム=AMQPLAIN、response=[5, 76, 79, 71, 73, 78, 83 、0、0、0、5、97、100、109、105、110、8、80、65、83、83、87、79、82、68、83、0、0、0、5、97、100 、109、105、110]、locale=en_US] [2016-11-04 08:05:26,901] INFO {org.wso2.andes.server.protocol.AMQProtocolEngine} - 次の理由により接続を閉じています: org.wso2.andes.AMQConnectionException: SASL サーバーを作成できません: AMQPLAIN [エラー コード 506: リソース エラー]
confing.php で thos params を conexions params として使用しています
私の質問: 1. いくつかの php コードと wso2mb の間の通信を確立するために、任意の php ライブラリ/チュートリアルをお勧めできますか? 2. wso2mb で許可されている接続方法は何ですか? (プレーン、AMQプレーン...?) 3. 助けてください:)