QAbstractHttpServer Class
HTTP サーバを実装するためにサブクラス化する API。詳細...
ヘッダー | #include <QAbstractHttpServer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
qmake: | QT += httpserver |
以来: | Qt 6.4 |
を継承する: | QObject |
継承元: |
パブリック関数
QAbstractHttpServer(QObject *parent = nullptr) | |
virtual | ~QAbstractHttpServer() override |
(since 6.8) void | addWebSocketUpgradeVerifier(const QObject *context, Handler &&func) |
bool | bind(QLocalServer *server) |
bool | bind(QTcpServer *server) |
(since 6.9) QHttpServerConfiguration | configuration() const |
bool | hasPendingWebSocketConnections() const |
(since 6.8) QHttp2Configuration | http2Configuration() const |
QList<QLocalServer *> | localServers() const |
std::unique_ptr<QWebSocket> | nextPendingWebSocketConnection() |
QList<quint16> | serverPorts() const |
QList<QTcpServer *> | servers() const |
(since 6.9) void | setConfiguration(const QHttpServerConfiguration &config) |
(since 6.8) void | setHttp2Configuration(const QHttp2Configuration &configuration) |
シグナル
void | newWebSocketConnection() |
保護された関数
virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
詳細説明
このクラスをサブクラス化し、handleRequest() およびmissingHandler() をオーバーライドして HTTP サーバーを作成します。bind() を使用して、サーバーへのすべての着信コネクションのリッスンを開始します。
これは低レベルの API です。HTTP サーバを実装するための高レベルの API についてはQHttpServer を参照してください。
メンバー関数ドキュメント
[explicit]
QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
QAbstractHttpServer のインスタンスを親parent で作成します。
[override virtual noexcept]
QAbstractHttpServer::~QAbstractHttpServer()
QAbstractHttpServer のインスタンスを破棄する。
[since 6.8]
template <typename Handler> void QAbstractHttpServer::addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
受信した WebSocket アップグレードを検証するコールバック関数func を追加します。提供されたcontext オブジェクトを使用して呼び出されます。少なくとも1つの登録済みのコールバックがAccept を返し、それ以前のコールバックがDeny を返さなかった場合、アップグレードは成功します。登録されたコールバックがない場合、またはすべてがPassToNext を返す場合、missingHandler() 関数が呼び出されます。コールバックは、登録された順に実行され、コールバック自身がこの関数を呼び出す ことはできない。
注意: func は、シグネチャQHttpServerWebSocketUpgradeResponse (*)(const QHttpServerRequest &)
を実装する必要があります。
server.addWebSocketUpgradeVerifier( &server, [](const QHttpServerRequest &request) { if (request.url().path() == "/allowed"_L1) return QHttpServerWebSocketUpgradeResponse::accept(); else return QHttpServerWebSocketUpgradeResponse::passToNext(); });
この関数は Qt 6.8 で導入されました。
QHttpServerRequest,QHttpServerWebSocketUpgradeResponse,hasPendingWebSocketConnections(),nextPendingWebSocketConnection(),newWebSocketConnection(),missingHandler()も参照してください 。
bool QAbstractHttpServer::bind(QLocalServer *server)
与えられたQLocalServer server をHTTPサーバーにバインドする。複数の接続を処理するために、server の異なるインスタンスでこの関数を複数回呼び出すことが可能です。
この関数を呼び出すと、すべての新しい接続がHTTPサーバーによって処理され、転送されます。
この関数を呼び出す前に、server でQLocalServer::listen() を呼び出すのはユーザーの責任である。server がリッスンしていない場合、何も起こらずfalse
が返される。
server がnullptrの場合、falseが返される。
成功すると、server がこの HTTP サーバーの親になり、true
が返されます。
QLocalServer およびQLocalServer::listen()も参照 。
bool QAbstractHttpServer::bind(QTcpServer *server)
与えられたTCPserver をHTTPサーバーにバインドする。複数の接続とポート、例えばSSL接続と非暗号化接続の両方を処理するために、異なるTCPserver のインスタンスでこの関数を複数回呼び出すことが可能です。
この関数を呼び出すと、すべての新しい接続がHTTPサーバーによって処理され、転送されます。
この関数を呼び出す前に、server でQTcpServer::listen() を呼び出すのはユーザーの責任である。server がリッスンしていない場合、何も起こらずfalse
が返される。
成功すると、server がこのHTTPサーバーの親となり、true
が返される。
HTTP 2を使用するには、QSslConfiguration::setAllowedNextProtocols() を引数{ QSslConfiguration::ALPNProtocolHTTP2 }
で呼び出したQSslServer にバインドする。
QTcpServer 、QTcpServer::listen()、QSslConfiguration::setAllowedNextProtocols()も参照のこと 。
[since 6.9]
QHttpServerConfiguration QAbstractHttpServer::configuration() const
このサーバーの一般設定パラメータを返します。
この関数は Qt 6.9 で導入されました。
setConfiguration()も参照してください 。
[pure virtual protected]
bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
この関数をオーバーライドして、request を調べ、responder に適切な応答を送り返すことで、request を処理する。request が正常に処理された場合はtrue
を返す。このメソッドがfalse
を返す場合、その後にmissingHandler() が呼び出される。
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
サーバーに保留中の WebSocket 接続がある場合はtrue
を返し、ない場合はfalse
を返す。
newWebSocketConnection()、nextPendingWebSocketConnection()、addWebSocketUpgradeVerifier()も参照 。
[since 6.8]
QHttp2Configuration QAbstractHttpServer::http2Configuration() const
サーバの HTTP/2 設定パラメータを返します。
この関数は Qt 6.8 で導入されました。
setHttp2Configuration()も参照してください 。
QList<QLocalServer *> QAbstractHttpServer::localServers() const
この HTTP サーバのローカルサーバを返します。
serverPorts()も参照ください 。
[pure virtual protected]
void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
この関数をオーバーライドして、handleRequest() で処理されなかったrequest の受信を処理する。この関数は、handleRequest() がfalse
を返すか、WebSocketのアップグレードが試行され、newWebSocketConnection() への接続がないか、一致するWebSocket検証者が存在しない場合に呼び出される。request およびresponder パラメータは、handleRequest() が呼び出されたときと同じである。
handleRequest() およびaddWebSocketUpgradeVerifier()も参照 。
[signal]
void QAbstractHttpServer::newWebSocketConnection()
このシグナルは、新しい WebSocket 接続が利用可能になるたびに発行される。
hasPendingWebSocketConnections(),nextPendingWebSocketConnection(),addWebSocketUpgradeVerifier()も参照 。
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
次の保留中の接続を、接続されたQWebSocket オブジェクトとして返します。保留中の接続がないときにこの関数が呼ばれた場合は、nullptr
が返されます。
注意: 返されたQWebSocket オブジェクトは、他のスレッドから使用することはできません。
newWebSocketConnection()、hasPendingWebSocketConnections()、addWebSocketUpgradeVerifier()も参照 。
QList<quint16> QAbstractHttpServer::serverPorts() const
QAbstractHttpServer のインスタンスがリッスンしているポートのリストを返す。
この関数はQObject::children と同じ保証を持ち、追加された最新のサーバが vector の最後のエントリとなります。
servers()も参照 。
QList<QTcpServer *> QAbstractHttpServer::servers() const
この HTTP サーバが接続を扱う TCP サーバと SSL サーバを返します。
serverPorts()も参照ください 。
[since 6.9]
void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
このサーバーの一般構成パラメータをconfig に設定します。
注意: 新しい設定は、すでに確立されている接続と、次に確立されるすべての接続の両方に適用されます。
この関数は Qt 6.9 で導入されました。
configuration()も参照してください 。
[since 6.8]
void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
サーバーのHTTP/2設定パラメーターを設定する。
次の HTTP/2 接続は、与えられたconfiguration を使用します。
この関数は Qt 6.8 で導入されました。
http2Configuration()も参照してください 。
© 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.