QWebSocket Class
WebSocketプロトコルを使用するTCPソケットを実装します。詳細...
Header: | #include <QWebSocket> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebSockets) target_link_libraries(mytarget PRIVATE Qt6::WebSockets) |
qmake: | QT += websockets |
Inherits: | QObject |
パブリック関数
QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::VersionLatest, QObject *parent = nullptr) | |
virtual | ~QWebSocket() override |
void | abort() |
qint64 | bytesToWrite() const |
QWebSocketProtocol::CloseCode | closeCode() const |
QString | closeReason() const |
(since 6.2) void | continueInterruptedHandshake() |
QAbstractSocket::SocketError | error() const |
QString | errorString() const |
bool | flush() |
(since 6.4) QWebSocketHandshakeOptions | handshakeOptions() const |
void | ignoreSslErrors(const QList<QSslError> &errors) |
bool | isValid() const |
QHostAddress | localAddress() const |
quint16 | localPort() const |
const QMaskGenerator * | maskGenerator() const |
quint64 | maxAllowedIncomingFrameSize() const |
quint64 | maxAllowedIncomingMessageSize() const |
QString | origin() const |
quint64 | outgoingFrameSize() const |
QAbstractSocket::PauseModes | pauseMode() const |
QHostAddress | peerAddress() const |
QString | peerName() const |
quint16 | peerPort() const |
QNetworkProxy | proxy() const |
qint64 | readBufferSize() const |
QNetworkRequest | request() const |
QUrl | requestUrl() const |
QString | resourceName() const |
void | resume() |
qint64 | sendBinaryMessage(const QByteArray &data) |
qint64 | sendTextMessage(const QString &message) |
void | setMaskGenerator(const QMaskGenerator *maskGenerator) |
void | setMaxAllowedIncomingFrameSize(quint64 maxAllowedIncomingFrameSize) |
void | setMaxAllowedIncomingMessageSize(quint64 maxAllowedIncomingMessageSize) |
void | setOutgoingFrameSize(quint64 outgoingFrameSize) |
void | setPauseMode(QAbstractSocket::PauseModes pauseMode) |
void | setProxy(const QNetworkProxy &networkProxy) |
void | setReadBufferSize(qint64 size) |
void | setSslConfiguration(const QSslConfiguration &sslConfiguration) |
QSslConfiguration | sslConfiguration() const |
QAbstractSocket::SocketState | state() const |
(since 6.4) QString | subprotocol() const |
QWebSocketProtocol::Version | version() const |
パブリックスロット
void | close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CloseCodeNormal, const QString &reason = QString()) |
void | ignoreSslErrors() |
void | open(const QNetworkRequest &request) |
void | open(const QUrl &url) |
(since 6.4) void | open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options) |
(since 6.4) void | open(const QUrl &url, const QWebSocketHandshakeOptions &options) |
void | ping(const QByteArray &payload = QByteArray()) |
シグナル
void | aboutToClose() |
(since 6.2) void | alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
(since 6.2) void | alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description) |
(since 6.6) void | authenticationRequired(QAuthenticator *authenticator) |
void | binaryFrameReceived(const QByteArray &frame, bool isLastFrame) |
void | binaryMessageReceived(const QByteArray &message) |
void | bytesWritten(qint64 bytes) |
void | connected() |
void | disconnected() |
(since 6.5) void | errorOccurred(QAbstractSocket::SocketError error) |
(since 6.2) void | handshakeInterruptedOnError(const QSslError &error) |
(since 6.2) void | peerVerifyError(const QSslError &error) |
void | pong(quint64 elapsedTime, const QByteArray &payload) |
void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
void | proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator) |
void | readChannelFinished() |
void | sslErrors(const QList<QSslError> &errors) |
void | stateChanged(QAbstractSocket::SocketState state) |
void | textFrameReceived(const QString &frame, bool isLastFrame) |
void | textMessageReceived(const QString &message) |
静的パブリック・メンバー
quint64 | maxIncomingFrameSize() |
quint64 | maxIncomingMessageSize() |
quint64 | maxOutgoingFrameSize() |
詳細説明
WebSocketは、単一のTCPコネクション上で全二重通信チャネルを提供するウェブ技術です。WebSocketプロトコルは2011年にIETFによってRFC 6455として標準化されました。QWebSocketは、クライアント・アプリケーションでもサーバー・アプリケーションでも使用できます。
このクラスはQAbstractSocket をモデルにしています。
QWebSocketは現在、WebSocket Extensionsをサポートしていません。
QWebSocket は、RFC 6455 で概説されている WebSocket プロトコルのバージョン 13 のみをサポートしています。
注意: 一部のプロキシは、WebSocket ハンドシェイク中に使用される特定の HTTP ヘッダーを理解しません。この場合、安全でない WebSocket 接続は失敗します。この問題を軽減する最善の方法は、安全な接続で WebSocket を使用することです。
警告 マスクを生成するために、この WebSocket の実装では、適度に安全なQRandomGenerator::global()->generate() 関数を使用します。優れたマスキングの重要性については、Lin-Shung Huang 他による "Talking to Yourself for Fun and Profit" を参照してください。上記の文書で言及されている攻撃に対する最善の対策は、安全な接続(wss://) で QWebSocket を使用することです。一般的に、アプリケーションでサードパーティのスクリプトが QWebSocket にアクセスしないように常に注意してください。
QAbstractSocket,QTcpSocket,QWebSocketクライアントの例も参照してください 。
メンバー関数 ドキュメント
[explicit]
QWebSocket::QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::VersionLatest, QObject *parent = nullptr)
与えられたorigin 、使用するプロトコルのversion 、およびparent で新しい QWebSocket を作成します。
クライアントのorigin はRFC 6454 で指定されているものです。(ウェブブラウザ以外のクライアントではorigin は必要ありません(RFC 6455参照))。origin 、改行文字を含んではならない。そうでない場合、ハンドシェイクの段階で接続は即座に中止される。
注意: 現在はV13(RFC 6455)のみがサポートされている。
[override virtual noexcept]
QWebSocket::~QWebSocket()
QWebSocket を破棄する。 ソケットがまだオープンされている場合はクローズし、使用中のリソースを解放する。
void QWebSocket::abort()
現在のソケットを中止し、ソケットをリセットする。close() と異なり、この関数はソケットを直ちにクローズし、書き込みバッファの保留中のデータを破棄する。
[signal]
void QWebSocket::aboutToClose()
このシグナルはソケットが閉じようとするときに発せられる。ソケットがクローズする前に実行する必要がある操作がある場合(例えば、デバイスに書き込む必要があるデータが別のバッファにある場合)、このシグナルを接続する。
close()も参照 。
[signal, since 6.2]
void QWebSocket::alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket level は、アラートが致命的なものか警告かを示す。 は、アラートが送信された理由を説明するコードである。アラートメッセージのテキストによる説明がある場合は、 。type description
注: このシグナルは、主に情報提供とデバッグを目的としており、アプリケーションで処理する必要はありません。アラートが致命的であった場合、基礎となるバックエンドはそれを処理し、接続を閉じます。
注意: 全てのバックエンドがこの機能をサポートしているわけではありません。
この関数は Qt 6.2 で導入されました。
alertSent()、QSsl::AlertLevel 、QSsl::AlertTypeも参照してください 。
[signal, since 6.2]
void QWebSocket::alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket level 、警告か致命的なエラーかを記述します。 、警告メッセージのコードを示します。アラートメッセージのテキスト記述がある場合は、 で提供される。type description
注意: このシグナルはほとんどが情報提供であり、デバッグ目的で使用することができます。
注意: すべてのバックエンドがこの機能をサポートしているわけではありません。
この関数は Qt 6.2 で導入されました。
alertReceived()、QSsl::AlertLevel 、QSsl::AlertTypeも参照してください 。
[signal, since 6.6]
void QWebSocket::authenticationRequired(QAuthenticator *authenticator)
このシグナルは、サーバーが認証を要求したときに発行されます。その後、authenticator オブジェクトに、認証を許可して接続を継続するために必要な詳細を入力する必要があります。
サーバーが認証を要求することがわかっている場合は、QUrl::setUserName とQUrl::setPassword を使用して、最初のQUrl でユーザー名とパスワードを設定することができます。QWebSocket は、提供された認証情報を使用しなくても、一度接続を試みます。
注意: QueuedConnectionを使用してこのシグナルに接続することはできません。シグナルが返されたときに認証情報に新しい情報が入力されていないと、接続に失敗するからです。
この関数は Qt 6.6 で導入されました。
QAuthenticatorも参照してください 。
[signal]
void QWebSocket::binaryFrameReceived(const QByteArray &frame, bool isLastFrame)
このシグナルはバイナリフレームを受信するたびに発行されます。frame にはデータが含まれ、isLastFrame はこれが完全なメッセージの最後のフレームであるかどうかを示します。
このシグナルは、完全なメッセージの到着を待つ代わりに、大きなメッセージをフレームごとに処理するために使用することができます。
textFrameReceived()も参照のこと 。
[signal]
void QWebSocket::binaryMessageReceived(const QByteArray &message)
このシグナルは、バイナリ・メッセージを受信するたびに発行されます。message には受信したバイトが格納されます。
textMessageReceived() も参照 。
qint64 QWebSocket::bytesToWrite() const
書き込み待ちのバイト数を返します。このバイト数は、制御がイベント・ループに戻ったとき、またはflush() が呼び出されたときに書き込まれる。
flushも参照の こと。
[signal]
void QWebSocket::bytesWritten(qint64 bytes)
このシグナルはソケットにデータが書き込まれる度に発生する。引数bytes には、このペイロードに書き込まれたバイト数が設定される。
注意: このシグナルは、セキュアなウェブソケットでもセキュアでないウェブソケットでも同じ意味を持つ。QSslSocket とは対照的に、bytesWritten() は暗号化されたデータが効果的に書き込まれた場合にのみ発せられる(QSslSocket::encryptedBytesWritten() を参照)。
close()も参照のこと 。
[slot]
void QWebSocket::close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CloseCodeNormal, const QString &reason = QString())
与えられたcloseCode とreason でソケットを優雅にクローズする。
ソケットがクローズされる前に、書き込みバッファ内のデータはすべてフラッシュされる。closeCode はクローズする理由を示すQWebSocketProtocol::CloseCode であり、reason はクローズする理由をより詳細に記述する。クローズフレームを含む全ての制御フレームは125バイトに制限されている。このうち2つがcloseCode に使用されるため、reason の最大長は123となる!reason がこの制限を超えると切り捨てられる。
QWebSocketProtocol::CloseCode QWebSocket::closeCode() const
ソケットがクローズされた理由を示すコードを返す。
QWebSocketProtocol::CloseCode とcloseReason()も参照のこと 。
QString QWebSocket::closeReason() const
ソケットがクローズされた理由を返す。
closeCode() も参照 。
[signal]
void QWebSocket::connected()
接続が正常に確立されたときに送出される。ソケットが接続され、ハンドシェークが成功すると、接続が成功したことになる。
open() およびdisconnected() も参照 。
[since 6.2]
void QWebSocket::continueInterruptedHandshake()
handshakeInterruptedOnError() シグナルを受け取った後でもハンドシェイクを終了したい場合は、この関数を呼び出す必要がある。この呼び出しは、シグナルに接続されたスロット関数から行う必要がある。シグナルとスロットの接続は直接でなければなりません。
この関数はQt 6.2で導入されました。
handshakeInterruptedOnError() とQSslConfiguration::setHandshakeMustInterruptOnError()も参照 。
[signal]
void QWebSocket::disconnected()
ソケットが切断されたときに発せられる。
QAbstractSocket::SocketError QWebSocket::error() const
最後に発生したエラーの種類を返す
errorString()も 参照。
[signal, since 6.5]
void QWebSocket::errorOccurred(QAbstractSocket::SocketError error)
このシグナルはエラーが発生した後に発せられる。
error パラメータには、発生したエラーのタイプが記述される。
QAbstractSocket::SocketError は登録されたメタタイプではないので、キュー接続の場合は、 () や () で登録する必要があります。Q_DECLARE_METATYPE qRegisterMetaType
この関数は Qt 6.5 で導入されました。
error() およびerrorString()も参照してください 。
QString QWebSocket::errorString() const
最後に発生したエラーについて、人間が読める説明を返します。
error()も参照して ください。
bool QWebSocket::flush()
この関数は、内部書き込みバッファから可能な限り多くのデータをネットワークソケットに書き込みます。何らかのデータが書き込まれた場合、この関数は真を返し、そうでない場合は偽を返します。QWebSocket がバッファリングされたデータの送信を直ちに開始する必要がある場合、この関数を呼び出す。正常に書き込まれたバイト数はオペレーティング・システムによって異なります。制御がイベント・ループに戻ると、QWebSocket が自動的にデータ送信を開始するので、ほとんどの場合、この関数を呼び出す必要はありません。
[signal, since 6.2]
void QWebSocket::handshakeInterruptedOnError(const QSslError &error)
QWebSocket 証明書検証エラーが検出された場合、および で早期エラー報告が有効になっている場合、このシグ ナルが発行される。アプリケーションは を検査し、ハンドシェイクを続行するか、中止してピアにアラートメッセージを送信するかを決定することが期待される。シグナルスロット接続は直接接続でなければなりません。QSslConfiguration error
この関数はQt 6.2で導入されました。
continueInterruptedHandshake(),sslErrors(),QSslConfiguration::setHandshakeMustInterruptOnError()も参照してください 。
[since 6.4]
QWebSocketHandshakeOptions QWebSocket::handshakeOptions() const
このソケットをオープンするために使用されたハンドシェイクオプションを返す。
この関数はQt 6.4で導入された。
[slot]
void QWebSocket::ignoreSslErrors()
このスロットは、QWebSocket のハンドシェークフェーズでのエラーを無視して接続を続行するようにQWebSocket に指示します。ハンドシェイクフェーズ中にエラーが発生しても接続を継続したい場合は、sslErrors() に接続されたスロットから、またはハンドシェイクフェーズの前に、このスロットを呼び出す必要があります。このスロットを、エラーに応答して、またはハンドシェイクの前に呼び出さないと、sslErrors() シグナルが発せられた後に接続が切断されます。
警告 sslErrors() シグナルによって報告されたエラーは、必ずユーザに確認させ、ユーザが進行に問題がないことを確認した場合にのみ、このメソッドを呼び出すようにしてください。予期せぬエラーが発生した場合は、接続を中断する必要があります。実際のエラーを検査せずにこのメソッドを呼び出すと、アプリケーションにセキュリティ・リスクをもたらす可能性が高くなります。十分注意して使用してください!
sslErrors()、QSslSocket::ignoreSslErrors()、QNetworkReply::ignoreSslErrors()も参照のこと 。
void QWebSocket::ignoreSslErrors(const QList<QSslError> &errors)
これはオーバーロードされた関数です。
このメソッドは、errors で指定されたエラーを無視するようにQWebSocket に指示します。
SSLエラーで期待される証明書を設定できることに注意してください:例えば、自己署名証明書を使用するサーバーに接続したい場合、以下のスニペットを考慮してください:
QList<QSslCertificate> cert = QSslCertificate::fromPath(QLatin1String("server-certificate.pem")); QSslError error(QSslError::SelfSignedCertificate, cert.at(0)); QList<QSslError> expectedSslErrors; expectedSslErrors.append(error); QWebSocket socket; socket.ignoreSslErrors(expectedSslErrors); socket.open(QUrl(QStringLiteral("wss://myserver.at.home")));
この関数を複数回呼び出すと、以前の呼び出しで渡されたエラーのリストが置き換わります。この関数を複数回呼び出すと、以前の呼び出しで渡されたエラーのリストが置き換えられます。この関数を空のリストで呼び出すと、無視したいエラーのリストを消去できます。
sslErrors()も参照のこと 。
bool QWebSocket::isValid() const
ソケットが読み書き可能な状態であればtrue
を返し、そうでなければfalse
を返す。
QHostAddress QWebSocket::localAddress() const
ローカルアドレスを返す
quint16 QWebSocket::localPort() const
ローカルポートを返す
const QMaskGenerator *QWebSocket::maskGenerator() const
このQWebSocket で現在使用されているマスクジェネレータを返す。
setMaskGenerator()も参照のこと 。
quint64 QWebSocket::maxAllowedIncomingFrameSize() const
受信するウェブソケットフレームの最大許容サイズを返します。
setMaxAllowedIncomingFrameSize() も参照 。
quint64 QWebSocket::maxAllowedIncomingMessageSize() const
受信するウェブソケットメッセージの最大許容サイズを返します。
setMaxAllowedIncomingMessageSize() も参照 。
[static]
quint64 QWebSocket::maxIncomingFrameSize()
このウェブソケット実装でサポートされる、受信ウェブソケットフレームの最大サイズを返します。
[static]
quint64 QWebSocket::maxIncomingMessageSize()
このウェブソケット実装でサポートされる、受信ウェブソケットメッセージの最大サイズを返します。
[static]
quint64 QWebSocket::maxOutgoingFrameSize()
このウェブソケット実装でサポートされる送信ウェブソケットフレームの最大サイズを返します。
[slot]
void QWebSocket::open(const QNetworkRequest &request)
指定したrequest を使用して WebSocket 接続を開きます。
WebSocket 接続を開く際にはrequest url が使用されます。リクエストに含まれるヘッダは、ウェブソケットハンドシェイクに必要なものとともに、 アップグレードリクエストでサーバに送信されます。
[slot]
void QWebSocket::open(const QUrl &url)
与えられたurl を使って WebSocket 接続を開きます。
url に改行文字( \rn) が含まれている場合、エラー・タイプとしてQAbstractSocket::ConnectionRefusedError を指定したエラー・シグナルが出力されます。
[slot, since 6.4]
void QWebSocket::open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options)
指定されたrequest とoptions を使用して WebSocket 接続を開きます。
WebSocket 接続を開くにはrequest url が使用されます。リクエストに含まれるヘッダーは、ウェブソケットハンドシェイクに必要なものとともに、アップグレードリクエストでサーバーに送信されます。
サブプロトコルなどの WebSocket ハンドシェイクの追加オプションはoptions で指定できます。
この関数は Qt 6.4 で導入されました。
[slot, since 6.4]
void QWebSocket::open(const QUrl &url, const QWebSocketHandshakeOptions &options)
与えられたurl とoptions を使って WebSocket 接続を開きます。
urlに改行文字( \rn) が含まれている場合、エラー・タイプとしてQAbstractSocket::ConnectionRefusedError を指定したエラー・シグナルが出力されます。
サブプロトコルなどの WebSocket ハンドシェイクの追加オプションは、options で指定できます。
この関数は Qt 6.4 で導入されました。
QString QWebSocket::origin() const
現在のオリジンを返します。
quint64 QWebSocket::outgoingFrameSize() const
発信する WebSocket フレームの最大サイズを返します。
setOutgoingFrameSize()も参照してください 。
QAbstractSocket::PauseModes QWebSocket::pauseMode() const
このソケットのポーズモードを返す
setPauseMode() も参照 。
QHostAddress QWebSocket::peerAddress() const
ピアアドレスを返します。
QString QWebSocket::peerName() const
peerName を返します。
quint16 QWebSocket::peerPort() const
ピアポートを返します。
[signal, since 6.2]
void QWebSocket::peerVerifyError(const QSslError &error)
QWebSocket は、SSL ハンドシェイクの間、暗号化が確立する前にこのシグナルを何度か発して、相手の ID を確立する際にエラーが発生したことを示すことができます。 は通常、 がピアを安全に識別できないことを示しています。error QWebSocket
このシグナルは、何か問題が発生したときに、その兆候を早期に示してくれる。このシグナルに接続することで、ハンドシェイクが完了する前に、接続されたスロットの内部から手動で接続を切断することを選択できる。何もしない場合、QWebSocket はQWebSocket::sslErrors() を出力します。
この関数は Qt 6.2 で導入されました。
sslErrors()も参照してください 。
[slot]
void QWebSocket::ping(const QByteArray &payload = QByteArray())
接続がまだ生きていることを示すためにサーバーにPingを送ります。pingメッセージに追加でpayload 。
payload のサイズは 125 より大きくできません。それより大きい場合、payload は125バイトに切り取られる。
注意: QWebSocket とQWebSocketServer は内部的に ping リクエストを処理する。
pong()も参照のこと 。
[signal]
void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload)
elapsedTime にはミリ秒単位のラウンドトリップタイムが含まれ、payload には ping とともに送信されたオプションのペイロードが含まれる。
ping()も参照してください 。
[signal]
void QWebSocket::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
このシグナルは、SSL/TLSハンドシェイクでPSK暗号スイートがネゴシエートされ、PSK認証が必要になった場合に発行される。
PSKを使う場合、クライアントはSSLハンドシェイクを続けるために、有効なIDと有効な事前共有鍵をサーバーに送らなければならない。アプリケーションはこのシグナルに接続されたスロットに、渡されたauthenticator オブジェクトを必要に応じて入力することで、この情報を提供することができます。
注意: このシグナルを無視したり、必要な認証情報を提供しなかったりすると、ハンドシェイクが失敗し、接続が中断されます。
注意 :authenticator オブジェクトはウェブソケットが所有するものであり、アプリケーションによって削除されてはならない。
QSslPreSharedKeyAuthenticator およびQSslSocket::preSharedKeyAuthenticationRequired()も参照してください 。
QNetworkProxy QWebSocket::proxy() const
現在設定されているプロキシを返します。
setProxy()も参照 。
[signal]
void QWebSocket::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
このシグナルは、認証を必要とするproxy が使用されたときに発行されます。その後、authenticator オブジェクトに必要な情報を入力することで、 認証を許可し、接続を継続することができます。
注意: QueuedConnectionを使用してこのシグナルに接続することはできません。 シグナルが返ったときに認証子に新しい情報が入力されていないと、接続に失敗するからです。
QAuthenticator およびQNetworkProxyも参照 。
qint64 QWebSocket::readBufferSize() const
ソケットが使用するリードバッファのサイズをバイト数で返す。
setReadBufferSize() も参照の こと。
[signal]
void QWebSocket::readChannelFinished()
この信号は、本装置において入力(読み取り)ストリームが閉じられたときに発せられる。クローズが検出されるとすぐに発せられる。
close()も参照のこと 。
QNetworkRequest QWebSocket::request() const
このソケットをオープンするために使用された、または使用される予定のリクエストを返す。
QUrl QWebSocket::requestUrl() const
ソケットが接続している、または接続する予定の URL を返す。
QString QWebSocket::resourceName() const
現在アクセスしているリソースの名前を返す。
void QWebSocket::resume()
ソケットのデータ転送を継続する。このメソッドは、ソケットが通知時に一時停止するように設定され、通知を受信した後にのみ使用する。現在サポートされている通知はsslErrors() だけである。ソケットが一時停止していない状態でこのメソッドを呼び出すと、未定義の動作となる。
pauseMode() およびsetPauseMode()も参照 。
qint64 QWebSocket::sendBinaryMessage(const QByteArray &data)
与えられたdata をバイナリメッセージとしてソケットに送信し、実際に送信されたバイト数を返す。
sendTextMessage()も参照 。
qint64 QWebSocket::sendTextMessage(const QString &message)
指定されたmessage をテキストメッセージとしてソケットに送信し、実際に送信されたバイト数を返す。
sendBinaryMessage()も参照 。
void QWebSocket::setMaskGenerator(const QMaskGenerator *maskGenerator)
マスクの生成に使用するジェネレータをmaskGenerator に設定する。 デフォルトのQWebSocket ジェネレータは、nullptr を指定することでリセットできる。マスクジェネレータは、接続が開いている間でも、いつでも変更できる。
maskGenerator()も参照のこと 。
void QWebSocket::setMaxAllowedIncomingFrameSize(quint64 maxAllowedIncomingFrameSize)
maxAllowedIncomingFrameSize に、着信するウェブソケットフレームの最大許容サイズを設定します。 着信フレームがこの制限を超えると、ピアは切断されます。指定できる範囲は 0 からmaxIncomingFrameSize() までで、デフォルトはmaxIncomingFrameSize() です。この関数の目的は、仮想メモリの枯渇を回避することです。
maxAllowedIncomingFrameSize()も参照 。
void QWebSocket::setMaxAllowedIncomingMessageSize(quint64 maxAllowedIncomingMessageSize)
受信する Web ソケット・メッセージの最大許容サイズをmaxAllowedIncomingMessageSize に設定します。 受信メッセージがこの制限を超えると、ピアは切断されます。許容範囲は 0 からmaxIncomingMessageSize() の間であり、デフォルトはmaxIncomingMessageSize() である。この関数の目的は、仮想メモリの枯渇を回避することである。
maxAllowedIncomingMessageSize()も参照 。
void QWebSocket::setOutgoingFrameSize(quint64 outgoingFrameSize)
発信するウェブソケットフレームの最大サイズをoutgoingFrameSize に設定します。指定できる範囲は 0 からmaxOutgoingFrameSize() で、デフォルトは 512kB です。この関数の目的は、受信側で許容される最大フレームサイズに合わせることです。
outgoingFrameSize()も参照のこと 。
void QWebSocket::setPauseMode(QAbstractSocket::PauseModes pauseMode)
通知受信時に一時停止するかどうかを制御します。pauseMode パラメータはソケットを一時停止する条件を指定する。
現在サポートされている通知はsslErrors() だけである。PauseOnSslErrors に設定すると、ソケット上のデータ転送は一時停止され、resume() を呼び出して再度明示的に有効にする必要がある。デフォルトでは、このオプションは PauseNever に設定されている。このオプションは、サーバに接続する前に呼び出す必要がある。
void QWebSocket::setProxy(const QNetworkProxy &networkProxy)
プロキシをnetworkProxy
proxy()も参照 。
void QWebSocket::setReadBufferSize(qint64 size)
QWebSocket の内部読み取りバッファのサイズをsize バイトに設定する。
バッファサイズがあるサイズに制限されている場合、QWebSocket はこのサイズを超えるデータをバッファリングしない。例外的に、バッファサイズを0にすると、読み込みバッファは無制限になり、すべての受信データがバッファリングされます。これがデフォルトである。このオプションは、(例えばリアルタイムのストリーミングアプリケーションで) 特定のタイミングでしかデータを読み込まない場合や、過剰なデータの受信からソケットを保護したい場合に有用である。
readBufferSize()も参照 。
void QWebSocket::setSslConfiguration(const QSslConfiguration &sslConfiguration)
ソケットのSSL設定をsslConfiguration の内容に設定する。
この関数は、ローカル証明書、暗号化方式、秘密鍵、CA証明書をsslConfiguration に格納されているものに設定する。 SSL-state関連のフィールドを設定することはできない。
sslConfiguration()も参照のこと 。
QSslConfiguration QWebSocket::sslConfiguration() const
ソケットのSSL設定状態を返す。ソケットのデフォルトの SSL コンフィギュレーションは、デフォルトの暗号化方式、デフォルトの CA 証明書、ローカル の秘密鍵や証明書を使用しないことである。SSL設定には、予告なしに変更される可能性のあるフィールドも含まれる。
setSslConfiguration()も参照 。
[signal]
void QWebSocket::sslErrors(const QList<QSslError> &errors)
QWebSocket は SSL ハンドシェイクの後にこのシグナルを発行し、相手の ID を確立する際に一つ以上のエラーが発生したことを示す。エラーは通常、 がピアを安全に識別できないことを示す。何らかのアクションを取らない限り、このシグナルが発せられた後に接続は切断されます。エラーが発生したにもかかわらず接続を続行したい場合は、このシグナルに接続されたスロットの内部から () を呼び出す必要がある。後でエラーリストにアクセスする必要がある場合は、(引数なしで) sslErrors() を呼び出すことができる。QWebSocket QWebSocket::ignoreSslErrors
errors には、 がピアの ID を検証できないようなエラーが 1 つ以上含まれている。QWebSocket
注意: このシグナルに接続する際にQt::QueuedConnection を使用することはできない。QWebSocket::ignoreSslErrors() を呼び出しても効果はない。
QAbstractSocket::SocketState QWebSocket::state() const
ソケットの現在の状態を返す。
[signal]
void QWebSocket::stateChanged(QAbstractSocket::SocketState state)
このシグナルはQWebSocket の状態が変化するたびに発行される。state パラメータは新しい状態である。
注意: QAbstractSocket::ConnectedState はサーバとのハンドシェイクが成功した後に発行される。
QAbstractSocket::SocketState キューイングされた接続の場合は、Q_REGISTER_METATYPE() と () で登録する必要がある。qRegisterMetaType
state()も参照 。
[since 6.4]
QString QWebSocket::subprotocol() const
使用されている WebSocket プロトコルを返します。
この関数は Qt 6.4 で導入されました。
[signal]
void QWebSocket::textFrameReceived(const QString &frame, bool isLastFrame)
このシグナルは、テキストフレームを受信するたびに発行されます。frame にはデータが含まれ、isLastFrame は、これが完全なメッセージの最後のフレームであるかどうかを示します。
このシグナルは、完全なメッセージの到着を待つ代わりに、大きなメッセージをフレームごとに処理するために使うことができます。
binaryFrameReceived()も参照 。
[signal]
void QWebSocket::textMessageReceived(const QString &message)
このシグナルは、テキスト・メッセージを受信するたびに発行されます。message には受信したテキストが含まれます。
binaryMessageReceived() も参照 。
QWebSocketProtocol::Version QWebSocket::version() const
ソケットが現在使用しているバージョンを返す。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。