問題タブ [rabbitmq-c]
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.
c - Win7 で rabbitmq-c を x64 にコンパイルする
x86モジュール(win32)としてWin7でrabbitmq-cを正常にコンパイルして実行しました。これは RabbitMQ の C クライアントであり、RabbitMQ 自体 ではないことに
注意してください。
CMAKE
次のコマンドの手順を使用して実行しました。
ただし、x64 にコンパイルする必要があります。ビルド プロセスがそれを行うように設定する構成オプションのスイッチが見つかりません。
rabbitmq - ソケットを開くことができない場合のトラブルシューティング方法 - amqp / rabbitmq-c
AMQP の rabbitmq-c 実装を Hello World しようとしています。
私は、rabbitmq-c ソースに含まれている例から採用した小さなスクリプトを持っています。ここにスニペットがあります:
これを rabbitmq サーバー プロセス (つまりhostname
is localhost
) と同じホストで実行すると、スクリプトが接続し、リスナーが受信するメッセージを送信します。この同じプログラムを別のボックスで実行し、Rabbit を実行しているボックスのホスト名を指定すると、-9 でソケットを開こうとすると、「ソケット エラーが発生しました」というだけで終了します。「errno」は、EINPROGRESS
ノンブロッキングソケットを開こうとしたときに予想されるものです。(これは、プログラムが成功したときに表示されるエラーと同じです)。
失敗すると、rabbitmq サーバー ログには何も表示されません。
誰かがここで何がうまくいかないのか具体的に教えてくれたらうれしいのですが、私は本当に釣り竿が必要です. ここのシステムから必要な情報を取得する方法がわかりません。実際にどこから始めればよいかさえわかりません。私は実際に unix I/O をしたことがありません。次のステップのデバッグについて誰か提案してもらえますか?
amqp - AMQP: Exchange、Queue、および Routing Key、および Binding Key: 名前付き交換の宣言と参照
RabbitMQ の amqp クライアントをamq.fanout
使用してタイプの交換を作成しようとしています。rabbitmq-c
しかし、私は正確に何を宣言しなければならないかについてつまずいています。thisに従って、交換の名前とタイプ、および必要に応じて交換の耐久性と有効期間のセマンティクスを宣言する必要があります。
交換を宣言すると、交換の名前であると思われる「交換」と、交換タイプ、たとえばamq.fanout
. からexamples/amqp_exchange_declare.c
しかし、パブリッシングの例を見ると、という名前の 2 番目のパラメーターに交換タイプexchange
を指定する場所があります。例えば、examples/amqp_producer.c
しかし、取引所の名前を提供する場所はありません。では、指定された取引所に公開するにはどうすればよいでしょうか?
そして、なぜ公開するために queue_name を提供しているのですか? エクスチェンジにのみ公開する必要があります。キューはパブリッシャーから隠されているはずです。これはすべて、例の変数の名前が不適切なだけですか、それとも基本的な何かが欠けていますか?
mingw - RabbitMQ-C MinGW ビルドの失敗: Windows で poll() 関数を使用できない
mingw (2013-10-27 のバージョン) を使用して、rabbitmq-c バージョン 0.6.0 (最新の安定版) をコンパイルしてみました。いくつかのコンパイル エラーは、"include poll.h" の使用によるものです。必要な poll() 関数が見つかりません。
poll() 関数は mingw によって提供されていないため、ここで説明されているように、mingw を使用して現在の rabbitmq-c ソースをコンパイルするにはどうすればよいでしょうか。
https://github.com/alanxz/rabbitmq-c/blob/master/README-win32.md
ssl - Rabbitmq-c "SSL ピア証明書の検証に失敗しました"
SSL を使用して RabbitMQ サーバーに接続しようとしていますが、「SSL ピア証明書の検証に失敗しました」というエラーが表示されます。
次のように openssl を使用して証明書を確認します: openssl s_client -connect host:port -CAfile cacert.pem
そして、「Verify return code: 0 (ok)」を取得したので、証明書は問題ないと思います。
ここでamqps_bind.c の例を使用しようとしています。
サーバーの検証のみが必要なので、amqp_ssl_socket_set_key() を削除しました。
コードは amqp_socket_open() で失敗しています。
また、SSLを使用して同じサーバーにエラーなしで接続できるC#コードがあります。
rabbitmq - rabbitmq の存在しないキューにメッセージを発行するときにコードを中止する方法
サーバークライアントアプリケーションを作成しました。
サーバー側サーバーは、直接交換でルーティング キー key1 を使用してキュー queue1 を初期
化します。
初期化と宣言の後、誰かが書き込むたびにデータを消費します。
クライアント側
クライアントは、ルーティング キーkey1を使用して、その交換でいくつかのデータを公開します。
また、公開する前に mandotory フラグを true に設定しました。
問題
サーバーを最初に起動するとすべて問題ありませんが、クライアントを最初に起動すると問題が発生し、ルーティングキーでデータを公開します。クライアントがデータを公開した場合、ブローカーからの例外はありません。
要件
存在しないキューにデータを公開したときに例外またはエラーが発生するようにしたい。
rabbitmq - RabbitMQ は失われた接続を閉じます
ハートビートに関係なく、失われた接続を閉じるように RabbitMQ を構成する方法があるかどうかを知りたいです。
私の問題は、ハートビートを 0 に設定して接続が開かれ、接続が失われた場合 (ネットワーク インターフェイスを無効にするなど)、サーバーが接続を永久に開いたままにすることです。TCP タイムアウトは 11 分ですが、接続が閉じていないことを理解しています時間後。
キープアライブ構成をサーバーに追加しましたが、結果は同じでした (SSL を使用しています)。
ハートビート構成に関係なく、この接続を閉じるようにサーバーを構成する方法はありますか?
または、低ハートビート構成で接続を拒否できますか?
環境の詳細:
OS Ubuntu サーバー 14.04
RabbitMQ サーバー バージョン 3.5.4
構成:
c - RabbitMq C API : "rabbitmqctl cluster_status -n rabbit@ のエミュレート" C API から
C API のみを使用してクラスター内のノードのリストを取得しようとしています。
次のシェル コマンドが返すものは多かれ少なかれ、C API からのものです。
クライアント側でrabbitmqサーバーパッケージに依存することを避けたいのでrabbitmqctl
、Cからの呼び出しを避けたいと思いsystem()
ます。popoen()
ヒントはありますか?
c - RabbitMQ-C ビルド エラー (openSSL を使用)
SSL をサポートする RabbitMQ-C ( https://github.com/alanxz/rabbitmq-c )をビルドしようとしています。最新の openSSL バージョン ( https://github.com/openssl/openssl ) をダウンロードしてビルドし、追加しました。(openssl ライブラリは openssl ルート フォルダーにあります)。私の端末ログ:
cmake..:
cmake --ビルド:
今、私は何が悪いのか理解できません。
PS OSX 10.11、