2017-12-29 32 views
0

私は、次の部分では、要求/応答パターンを実装したいと思います:要求が一時トピックベースの要求/応答スキームで処理される前に、応答のサブスクリプションが確立されていることが保証されていますか?

  • サーバー:WebSocketを
  • 以上stompjsと JavaScriptの

私が欲しい:ActiveMQの

  • クライアントと Springboot httpリクエストのような動作

    リクエストを送信し、対応する応答を取得します。私はある私は3つのメッセージ

    手順を送る一時的なチャンネル でこれをやろう

    1. はtemproraryチャネルに

      SUBSCRIBE 
      id:mysub 
      destination:/temp-queue/example 
      
    2. をSUBSCRIBEリクエストを送信し、含まステップ1の購読チャネルを持つ返信先ヘッダ

      destination:/queue/PO.REQUEST 
      reply-to:/temp-queue/example 
      
    3. ステップ1サーバ上で完了し、そのサーバが送信する準備ができているかどうかわからイム(クライアントとしてのメッセージを非同期に送信する)、今ではないサーバー

      MESSAGE 
      subscription:foo 
      reply-to:/queue/temp.default.23.example 
      destination:/queue/PO.REQUEST 
      reply-to:/temp-queue/example 
      

    からの応答メッセージを取得します。しかし、ステップ2の要求がサーバーに到着したときのキューへの応答。

    ステップ1を終了する前にステップ2を終了する可能性はありますか?または、ActiveMQは、クライアントからの受信メッセージ1と2が正しい順序で処理され、終了することを保証しますか?

    メッセージ1とメッセージ2の間の競合状態は起こりますか?

    ありがとうございました!

  • +0

    ActiveMQ Apolloは廃止されたソフトウェアであり、もはやサポートされていないので、多分助けが得られません。 –

    +0

    私はApolloを使用しません。 –

    +0

    私はポストからApolloへの参照を削除し、少し明確にすることをお勧めしたい –

    答えて

    0

    クライアントが送信するSTOMPフレームは、そのフレームの処理を同期させる受信確認要求と共に送信できます。したがって、送信を実行する前にサブスクリプションが完了していることを確認したい場合は、receipt-idをサブスクライブフレームに添付し、送信を行う前にspec mandated RECEIPTフレームを待つようにしてください。これにより、サブスクリプションが他の処理。

    関連する問題