Websocket を使用して Web アプリケーション用のリアルタイム API を開発することを楽しみにしています。このために、RabbitMQ をブローカーとして使用しています。バックエンドは Python (gevent + websocket) に基づいており、Pika/Puka を rabbitmq クライアントとして使用しています。
ここで私が直面している問題は、websocket を使用して rabbitMQ に接続する方法です。最初の Websocket 接続の確立後、ソケット オブジェクトはクライアントからの新しいメッセージを待ちます。rabbitMQ の場合、コンシューマーをセットアップする必要があるため、メッセージを受信したときにメッセージを処理します。このように捉えることができ、
- クライアントは、全二重 Websocket を介してサーバーとの接続を確立します。
- すべてのクライアントは、最初の websocket ハンドシェイク後に RabbitMQ のコンシューマーとして機能する必要があるため、クライアントがメッセージを受け取ると、すべてのクライアントが更新されます。
- 新しいメッセージが websocket に到着すると、そのクライアントはそれを RabbitMQ に送信するため、この時点でこのクライアントはパブリッシャーとして機能します。
問題は、Websocket が新しいメッセージを待機することと、RabbitMQ コンシューマーがそのチャネルで新しいメッセージを待機することです。これら 2 つのケースをリンクできませんでした。
これが間違った方法かどうかはわかりません...
このシナリオを実装する方法が見つかりません。間違った方法で行っている場合、または別の方法がある場合は、これを修正するのを手伝ってください。
ありがとうございました、
ハリダス N.