QGrpcHttp2Channel Class

QGrpcHttp2Channelクラスは、通信のためのHTTP/2トランスポート・レイヤーを提供する。 gRPC通信を提供します。詳細...

ヘッダー #include <QGrpcHttp2Channel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Grpc)
target_link_libraries(mytarget PRIVATE Qt6::Grpc)
以来:Qt 6.5
QML では GrpcHttp2Channel
継承: QAbstractGrpcChannel

パブリック関数

QGrpcHttp2Channel(const QUrl &hostUri)
QGrpcHttp2Channel(const QUrl &hostUri, const QGrpcChannelOptions &options)
virtual ~QGrpcHttp2Channel() override
QUrl hostUri() const

詳しい説明

QGrpcHttp2Channel クラスはQAbstractGrpcChannel を実装しています。 gRPC実装しています。

HTTP/2は、その前身であるHTTP/1.1よりもいくつかの利点を導入しており、QGrpcHttp2Channelは、多重化されたTCP接続を使用することで、セキュリティや信頼性を犠牲にすることなく、効率的な通信を必要とする高性能なリアルタイムアプリケーションに適しています。

このチャネルは、必要なカスタマイズを含むQGrpcChannelOptions を使って構築することで、SSLサポートやカスタムserializationFormat などのオプションでカスタマイズすることができる。

コンテンツ・タイプ

gRPC over HTTP/2のcontent-typeは、メッセージのシリアライズ形式を決定します。それはapplication/grpc で始まらなければならず、接尾辞を含むことができます。フォーマットはこのスキームに従います:

"content-type": "application/grpc" [("+proto" / "+json" / {custom})]

例えば

  • application/grpc+proto はProtobufエンコーディングを指定します。
  • application/grpc+json はJSONエンコーディングを指定します。

シリアライズ形式は、メタデータ内でcontent-type を指定するか、serializationFormat を直接設定することで設定できます。デフォルトでは、application/grpc content-typeが使用されます。

QGrpcHttp2ChannelをJSONシリアライズフォーマットで設定するには、content-type メタデータを使用します:

auto jsonChannel = std::make_shared<QGrpcHttp2Channel>(
    QUrl("http://localhost:50051"_L1),
    QGrpcChannelOptions().setMetadata({
        { "content-type"_ba, "application/grpc+json"_ba },
    })
);

カスタムシリアライザとcontent-type 、直接シリアライズフォーマットを設定することができます:

class DummySerializer : public QAbstractProtobufSerializer
{
    ...
};
QGrpcSerializationFormat dummyFormat("dummy", std::make_shared<DummySerializer>());
auto dummyChannel = std::make_shared<QGrpcHttp2Channel>(
    QUrl("http://localhost:50051"_L1),
    QGrpcChannelOptions().setSerializationFormat(dummyFormat)
);

これは、dummy サフィックスを持つメッセージのエンコードとデコードにDummySerializer を使用します。HTTP/2トランスポートでは、これはapplication/grpc+dummy content-typeになります。

注意: カスタムシリアライザーは、指定されたフォーマットのサーバーサポートを必要とします。

QAbstractGrpcChannelQGrpcChannelOptionsQGrpcSerializationFormatも参照してください

メンバ関数ドキュメント

[explicit] QGrpcHttp2Channel::QGrpcHttp2Channel(const QUrl &hostUri)

QGrpcHttp2Channel をhostUri で構築する。

[explicit] QGrpcHttp2Channel::QGrpcHttp2Channel(const QUrl &hostUri, const QGrpcChannelOptions &options)

QGrpcHttp2Channel をhostUrioptions で構築する。

[override virtual noexcept] QGrpcHttp2Channel::~QGrpcHttp2Channel()

QGrpcHttp2Channel オブジェクトを破棄する。

QUrl QGrpcHttp2Channel::hostUri() const

このチャネルのホスト URI を返します。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.