メッセージキューからイベントを読み取り、すべてのWebクライアントにリアルタイムで通知する通知サービスがあるとします。私はWebソケットの仕組みを知っていますが、その間にAPIゲートウェイがあると困惑します。そのとき、クライアント、APIゲートウェイ、および通知サービスの間でWebソケット接続がどのように維持されるのでしょうか。
助けてください!ありがとう
クライアントによって開かれたWebSocket接続は、最終的にWebSocketサーバーに接続する必要があります。
APIゲートウェイの仕事は、クライアントからの着信Webソケット接続を受け入れ、それをWebソケットサーバーに正しくルーティングすることです。 APIゲートウェイは、クライアントのWebソケットから送信されたすべてのデータを正しいバックエンドサービスにリダイレクトし、常に接続を維持します。
あなたの質問の根源は、「websocket接続を使用するクライアントに、通知サービスからライブアップデートを受信させるにはどうすればよいですか?」です。最も簡単な答えは、Notification ServiceでWebsocketサーバーを起動し、各クライアントにAPIゲートウェイに接続させ、APIゲートウェイにそのトラフィックをNotification Serviceにルーティングさせることです。
通知サービスから送信されるデータを変換するために、クライアントからさらに要件があれば、次のことができます。
概念を混同しないでください。 API Gatewayは、インフラストラクチャをクライアントから隠しています。 「フロントエンドのバックエンド」の意味で、多くのサービスの単一のフロントエンドにすることができます。また、認証など、他の多くのことにも関与します。
Webソケットサーバーは、API Gatewayと並行して配置できます。別のドメインまたは別のポート。 http://nchan.io のようなWebソケットサーバーを使用するとします。アプリケーションからのイベントは、メッセージブローカーまたは使用するメッセージング統合パターンを通過します。消費者はこのイベントを選択し、Nchanサーバーを介して公開できます。クライアント(ブラウザなど)はNchanサーバーに接続し、イベントについて通知されます。