4.6. HTTP の変更点
本セクションでは、HTTP メソッドの変更点を説明します。
4.6.1. Eclipse Vert.x HTTP メソッドにおける一般的な更新点 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションでは、Eclipse Vert.x HTTP メソッドにおけるその他の更新を説明します。
4.6.1.1. WebSocket の HTTP メソッドの更新 リンクのコピーリンクがクリップボードにコピーされました!
WebSocket の変更点は次のとおりです。
メソッド名で
WebSocketという用語の使用に一貫性がありませんでした。メソッド名に、WebSocketではなくWebsocketなどの誤った大文字が含まれていました 。以下のクラスでWebSocketの使用に一貫性のないメソッドが削除されました。代わりに正しい大文字を持つ新しいメソッドを使用してください。HttpServerOptionsクラスの以下のメソッドが削除されました。Expand 削除されたメソッド 新しいメソッド getMaxWebsocketFrameSize()getMaxWebSocketFrameSize()setMaxWebsocketFrameSize()setMaxWebSocketFrameSize()getMaxWebsocketMessageSize()getMaxWebSocketMessageSize()setMaxWebsocketMessageSize()setMaxWebSocketMessageSize()getPerFrameWebsocketCompressionSupported()getPerFrameWebSocketCompressionSupported()setPerFrameWebsocketCompressionSupported()setPerFrameWebSocketCompressionSupported()getPerMessageWebsocketCompressionSupported()getPerMessageWebSocketCompressionSupported()setPerMessageWebsocketCompressionSupported()setPerMessageWebSocketCompressionSupported()getWebsocketAllowServerNoContext()getWebSocketAllowServerNoContext()setWebsocketAllowServerNoContext()setWebSocketAllowServerNoContext()getWebsocketCompressionLevel()getWebSocketCompressionLevel()setWebsocketCompressionLevel()setWebSocketCompressionLevel()getWebsocketPreferredClientNoContext()getWebSocketPreferredClientNoContext()setWebsocketPreferredClientNoContext()setWebSocketPreferredClientNoContext()getWebsocketSubProtocols()getWebSocketSubProtocols()setWebsocketSubProtocols()setWebSocketSubProtocols()WebSocketサブプロトコルの新しいメソッドは、項目を保存するためにコンマ区切りの文字列の代わりにList<String>データ型を使用します。HttpClientOptionsクラスの以下のメソッドが削除されました。Expand 削除されたメソッド 置き換えメソッド getTryUsePerMessageWebsocketCompression()getTryUsePerMessageWebSocketCompression()setTryUsePerMessageWebsocketCompression()setTryUsePerMessageWebSocketCompression()getTryWebsocketDeflateFrameCompression()getTryWebSocketDeflateFrameCompression()getWebsocketCompressionAllowClientNoContext()getWebSocketCompressionAllowClientNoContext()setWebsocketCompressionAllowClientNoContext()setWebSocketCompressionAllowClientNoContext()getWebsocketCompressionLevel()getWebSocketCompressionLevel()setWebsocketCompressionLevel()setWebSocketCompressionLevel()getWebsocketCompressionRequestServerNoContext()getWebSocketCompressionRequestServerNoContext()setWebsocketCompressionRequestServerNoContext()setWebSocketCompressionRequestServerNoContext()HttpServerクラスの以下のハンドラーメソッドが削除されました。Expand 非推奨となったメソッド 新しいメソッド websocketHandler()webSocketHandler()websocketStream()webSocketStream()
-
WebsocketRejectedExceptionは非推奨になりました。メソッドは、代わりにUpgradeRejectedExceptionを出力します。 -
HttpClientwebSocket()メソッドは、HandlerまたはHandler<Throwable>の代わりにHandler<AsyncResult<WebSocket>>を使用します。 -
また、
WebSocketConnectOptionsクラスのメソッドを使用して HTTP クライアントを WebSocket に接続する多重定義されたメソッドの数も削減されました。 HttpServerRequest.upgrade()メソッドが削除されました。このメソッドは同期的でした。代わりに、新しいメソッド
HttpServerRequest.toWebSocket()を使用してください。この新しいメソッドは非同期的です。以下の例は、Eclipse Vert.x 3.x での同期メソッドの使用を示しています。
// 3.x server.requestHandler(req -> { WebSocket ws = req.upgrade(); });// 3.x server.requestHandler(req -> { WebSocket ws = req.upgrade(); });Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例は、Eclipse Vert.x 4 での非同期メソッドの使用を示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6.1.2. WebSocket 接続の数の設定 リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Vert.x 3.x では、HTTP クライアントプールサイズを使用してアプリケーションで WebSocket 接続の最大数を定義することができます。値アクセサーメソッド HttpClientOptions.maxPoolSize() は、WebSocket 接続の取得および設定に使用されました。デフォルトの接続数は、エンドポイントごとに 4 に設定されました。
以下の例は、Eclipse Vert.x 3.x で WebSocket 接続が設定される方法を示しています。
// 3.x options.setMaxPoolSize(30); // Maximum connection is set to 30 for each endpoint
// 3.x
options.setMaxPoolSize(30); // Maximum connection is set to 30 for each endpoint
しかし、Eclipse Vert.x 4 では、使用後に接続が閉じられるため、WebSocket TCP 接続のプールはありません。アプリケーションは、HTTP リクエストに異なるプールを使用します。値のアクセサーメソッド HttpClientOptions.maxWebSockets() を使用して WebSocket 接続を取得および設定します。デフォルトの接続数は、エンドポイントごとに 50 に設定されます。
以下の例は、Eclipse Vert.x 4 で WebSocket 接続を設定する方法を示しています。
// 4.0 options.setMaxWebSockets(30); // Maximum connection is set to 30 for each endpoint
// 4.0
options.setMaxWebSockets(30); // Maximum connection is set to 30 for each endpoint
4.6.1.3. HttpMethod がインターフェースとして利用可能 リンクのコピーリンクがクリップボードにコピーされました!
HttpMethod は新しいインターフェースとして利用できます。
以前のリリースの Eclipse Vert.x では、HttpMethod は列挙型として宣言されていました。列挙として、HTTP の拡張性が制限されます。さらに、このタイプの他の HTTP メソッドを直接提供できませんでした。サーバーおよびクライアントの HTTP 要求時に、HttpMethod.OTHER の値を rawMethod 属性と共に使用する必要がありました。
スイッチブロックで HttpMethod 列挙データ型を使用している場合は、以下のコードを使用してアプリケーションを Eclipse Vert.x 4 に移行できます。
以下の例は、Eclipse Vert.x 3.x リリースの switch ブロックを示しています。
以下の例は、Eclipse Vert.x 4 の switch ブロックを示しています。
Eclipse Vert.x 4 で以下のコードを使用することもできます。
アプリケーションで HttpMethod.OTHER 値を使用している場合は、以下のコードを使用してアプリケーションを Eclipse Vert.x 4 に移行します。
以下の例は、Eclipse Vert.x 3.x リリースのコードを示しています。
client.request(HttpMethod.OTHER, ...).setRawName("PROPFIND");
client.request(HttpMethod.OTHER, ...).setRawName("PROPFIND");
以下の例は、Eclipse Vert.x 4 のコードを示しています。
client.request(HttpMethod.valueOf("PROPFIND"), ...);
client.request(HttpMethod.valueOf("PROPFIND"), ...);