4.6.2.3.3. net ソケットメソッドを使用した HTTP クライアントトンネリング
HTTP トンネルは、HttpClientResponse.netSocket() メソッドを使用して作成できます。Eclipse Vert.x 4 では、このメソッドが更新されました。
要求の接続に net ソケットを取得するには、要求でソケットハンドラーを送信します。ハンドラーは、HTTP 応答ヘッダーの受信時に呼び出されます。ソケットはトンネリングの準備ができ、バッファーの送受信が可能です。
以下の例は、Eclipse Vert.x 3.x リリースで接続の net ソケットを取得する方法を示しています。
client.request(HttpMethod.CONNECT, uri, ar -> {
if (ar.succeeded()) {
HttpClientResponse response = ar.result();
if (response.statusCode() == 200) {
NetSocket so = response.netSocket();
}
}
}).end();
以下の例は、Eclipse Vert.x 4 で接続の net ソケットを取得する方法を示しています。
client.request(HttpMethod.CONNECT, uri, ar -> {
}).netSocket(ar -> {
if (ar.succeeded()) {
// Got a response with a 200 status code
NetSocket so = ar.result();
// Go for tunneling
}
}).end();