クラス HttpTunnelServer
java.lang.ObjectSE
org.springframework.boot.devtools.tunnel.server.HttpTunnelServer
HTTP 経由で TCP トラフィックをトンネリングするために使用できるサーバー。同期 HTTP を介した双方向ストリーム (BOSH) XMPP 拡張プロトコルの設計と同様に、サーバーは、レスポンスが利用可能になるまで HTTP リクエストを開いたままにして、長いポーリングを使用します。一般的なトラフィックパターンは次のとおりです。
[ CLIENT ] [ SERVER ] | (a) Initial empty request | |------------------------------>| | (b) Data I | -->|------------------------------>|---> | Response I (a) | <--|<------------------------------|<--- | | | (c) Data II | -->|------------------------------>|---> | Response II (b) | <--|<------------------------------|<--- . . . .各受信リクエストは、次に使用可能なレスポンスを運ぶために使用されるために開いたままになります。サーバーは常に最大 2 つの接続を開いたままにします。
リクエストは HTTP GET または POST(ペイロードがあるかどうかに応じて)を使用して作成し、ペイロードは本文に含まれている必要があります。以下のレスポンスコードがサーバーから返される可能性があります。
ステータス | 意味 |
---|---|
200 (OK) | データペイロードレスポンス。 |
204 (コンテンツなし) | ロングポーリングがタイムアウトしました。クライアントは新しいリクエストを開始する必要があります。 |
429 (リクエストが多すぎます) | すでに十分な数の接続が開いています。これは削除できます。 |
410 (なくなった) | ターゲットサーバーが切断されました。 |
503 (使用不可のサービス) | ターゲットサーバーが利用できません |
ペイロードを含むリクエストとレスポンスには、実行中のシーケンス番号を含む x-seq
ヘッダーが含まれます(データが正しい順序で適用されるようにするために使用されます)。ペイロードを含む最初のリクエストには、x-seq
値 1
が必要です。
- 導入:
- 1.3.0
- 作成者:
- Phillip Webb, Andy Wilkinson
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明protected static class
HTTP リクエスト / レスポンスペアをカプセル化します。protected class
トンネルトラフィックの転送に使用されるメインサーバースレッド。コンストラクターのサマリー
コンストラクターコンストラクター説明HttpTunnelServer
(TargetServerConnection serverConnection) 新しいHttpTunnelServer
インスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明protected HttpTunnelServer.ServerThread
アクティブなサーバースレッドを返し、必要に応じて作成および開始します。protected void
handle
(HttpTunnelServer.HttpConnection httpConnection) 受信 HTTP 接続を処理します。void
handle
(ServerHttpRequest request, ServerHttpResponse response) 受信 HTTP 接続を処理します。void
setDisconnectTimeout
(long disconnectTimeout) 接続を閉じる前にクライアントを待機する最大時間を設定します。void
setLongPollTimeout
(int longPollTimeout) サーバーの長いポーリングタイムアウトを設定します。
コンストラクターの詳細
HttpTunnelServer
新しいHttpTunnelServer
インスタンスを作成します。- パラメーター:
serverConnection
- ターゲットサーバーへの接続
メソッドの詳細
handle
受信 HTTP 接続を処理します。- パラメーター:
request
- HTTP リクエストresponse
- HTTP レスポンス- 例外:
IOExceptionSE
- I/O エラーの場合
handle
受信 HTTP 接続を処理します。- パラメーター:
httpConnection
- HTTP 接続- 例外:
IOExceptionSE
- I/O エラーの場合
getServerThread
アクティブなサーバースレッドを返し、必要に応じて作成および開始します。- 戻り値:
ServerThread
(非null
)- 例外:
IOExceptionSE
- I/O エラーの場合
setLongPollTimeout
public void setLongPollTimeout(int longPollTimeout) サーバーの長いポーリングタイムアウトを設定します。- パラメーター:
longPollTimeout
- ミリ秒単位の長いポーリングタイムアウト
setDisconnectTimeout
public void setDisconnectTimeout(long disconnectTimeout) 接続を閉じる前にクライアントを待機する最大時間を設定します。- パラメーター:
disconnectTimeout
- ミリ秒単位の切断タイムアウト