public class HttpTunnelServer extends ObjectSE
[ 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
が必要です。
HttpTunnelConnection
修飾子と型 | クラスと説明 |
---|---|
protected static class | HttpTunnelServer.HttpConnection HTTP リクエスト / レスポンスペアをカプセル化します。 |
protected class | HttpTunnelServer.ServerThread トンネルトラフィックの転送に使用されるメインサーバースレッド。 |
コンストラクターと説明 |
---|
HttpTunnelServer(TargetServerConnection serverConnection) 新しい HttpTunnelServer インスタンスを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected HttpTunnelServer.ServerThread | getServerThread() アクティブなサーバースレッドを返し、必要に応じて作成および開始します。 |
protected void | handle(HttpTunnelServer.HttpConnection httpConnection) 受信 HTTP 接続を処理します。 |
void | handle(ServerHttpRequest request, ServerHttpResponse response) 受信 HTTP 接続を処理します。 |
void | setDisconnectTimeout(long disconnectTimeout) 接続を閉じる前にクライアントを待機する最大時間を設定します。 |
void | setLongPollTimeout(int longPollTimeout) サーバーの長いポーリングタイムアウトを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public HttpTunnelServer(TargetServerConnection serverConnection)
HttpTunnelServer
インスタンスを作成します。serverConnection
- ターゲットサーバーへの接続 public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOExceptionSE
request
- HTTP リクエスト response
- HTTP レスポンス IOExceptionSE
- I/O エラーの場合 protected void handle(HttpTunnelServer.HttpConnection httpConnection) throws IOExceptionSE
httpConnection
- HTTP 接続 IOExceptionSE
- I/O エラーの場合 protected HttpTunnelServer.ServerThread getServerThread() throws IOExceptionSE
ServerThread
(非 null
)IOExceptionSE
- I/O エラーの場合 public void setLongPollTimeout(int longPollTimeout)
longPollTimeout
- ミリ秒単位の長いポーリングタイムアウト public void setDisconnectTimeout(long disconnectTimeout)
disconnectTimeout
- ミリ秒単位の切断タイムアウト