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 クラスの以下のメソッドが削除されました。

      削除されたメソッド新しいメソッド

      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 クラスの以下のメソッドが削除されました。

      削除されたメソッド置き換えメソッド

      getTryUsePerMessageWebsocketCompression()

      getTryUsePerMessageWebSocketCompression()

      setTryUsePerMessageWebsocketCompression()

      setTryUsePerMessageWebSocketCompression()

      getTryWebsocketDeflateFrameCompression()

      getTryWebSocketDeflateFrameCompression()

      getWebsocketCompressionAllowClientNoContext()

      getWebSocketCompressionAllowClientNoContext()

      setWebsocketCompressionAllowClientNoContext()

      setWebSocketCompressionAllowClientNoContext()

      getWebsocketCompressionLevel()

      getWebSocketCompressionLevel()

      setWebsocketCompressionLevel()

      setWebSocketCompressionLevel()

      getWebsocketCompressionRequestServerNoContext()

      getWebSocketCompressionRequestServerNoContext()

      setWebsocketCompressionRequestServerNoContext()

      setWebSocketCompressionRequestServerNoContext()

    • HttpServer クラスの以下のハンドラーメソッドが削除されました。

      非推奨となったメソッド新しいメソッド

      websocketHandler()

      webSocketHandler()

      websocketStream()

      webSocketStream()

  • WebsocketRejectedException は非推奨になりました。メソッドは、代わりに UpgradeRejectedException を出力します。
  • HttpClient webSocket() メソッドは、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();
    });

    以下の例は、Eclipse Vert.x 4 での非同期メソッドの使用を示しています。

    // 4.x
    server.requestHandler(req -> {
      Future<WebSocket> fut = req.toWebSocket();
      fut.onSuccess(ws -> {
      });
    });

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

しかし、Eclipse Vert.x 4 では、使用後に接続が閉じられるため、WebSocket TCP 接続のプールはありません。アプリケーションは、HTTP リクエストに異なるプールを使用します。値のアクセサーメソッド HttpClientOptions.maxWebSockets() を使用して WebSocket 接続を取得および設定します。デフォルトの接続数は、エンドポイントごとに 50 に設定されます。

以下の例は、Eclipse Vert.x 4 で WebSocket 接続を設定する方法を示しています。

// 4.x
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 ブロックを示しています。

switch (method) {
  case GET:
    ...
    break;
  case OTHER:
    String s = request.getRawMethod();
    if (s.equals("PROPFIND") {
      ...
    } else ...
}

以下の例は、Eclipse Vert.x 4 の switch ブロックを示しています。

switch (method.name()) {
  case "GET":
    ...
    break;
  case "PROPFIND";
    ...
    break;
}

Eclipse Vert.x 4 で以下のコードを使用することもできます。

HttpMethod PROPFIND = HttpMethod.valueOf("PROPFIND");

if (method == HttpMethod.GET) {
  ...
} else if (method.equals(PROPFIND)) {
  ...
} else {
  ...
}

アプリケーションで HttpMethod.OTHER 値を使用している場合は、以下のコードを使用してアプリケーションを Eclipse Vert.x 4 に移行します。

以下の例は、Eclipse Vert.x 3.x リリースのコードを示しています。

client.request(HttpMethod.OTHER, ...).setRawName("PROPFIND");

以下の例は、Eclipse Vert.x 4 のコードを示しています。

client.request(HttpMethod.valueOf("PROPFIND"), ...);
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.