QWebSocket Class
WebSocketプロトコルを扱うTCPソケットを実装する。詳細...
ヘッダー | #include <QWebSocket> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebSockets) target_link_libraries(mytarget PRIVATE Qt6::WebSockets) |
qmake: | QT += websockets |
継承: | 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年にRFC 6455としてIETFによって標準化されました。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 には、このペイロードに書き込まれたバイト数が設定される。
注意: このシグナルは、セキュアなWebソケットでもセキュアでないWebソケットでも同じ意味を持つ。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()
ソケットが切断されたときに発せられる。
close() およびconnected()も参照のこと 。
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 接続を開きます。
request の url が WebSocket 接続を開くために使われます。リクエストに含まれるヘッダは、ウェブソケットハンドシェイクに必要なものとともに アップグレードリクエストでサーバに送られます。
[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 接続を開きます。
request の url が WebSocket 接続を開くために使われます。リクエストに含まれるヘッダは、ウェブソケットハンドシェイクに必要なものとともに、 アップグレードリクエストでサーバに送信されます。
サブプロトコルなどの 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
送信するウェブソケットフレームの最大サイズを返します。
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)
着信するウェブソケット・メッセージの最大許容サイズを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 状態に関連するフィールドを設定することはできない。
sslConfiguration()も参照 。
QSslConfiguration QWebSocket::sslConfiguration() const
ソケットのSSL設定状態を返す。ソケットのデフォルトのSSL設定は、デフォルトの暗号化方式、デフォルトのCA証明書、ローカルの秘密鍵や証明書を使用しないことである。SSL設定には、予告なしに変更される可能性のあるフィールドも含まれる。
setSslConfiguration()も参照 。
[signal]
void QWebSocket::sslErrors(const QList<QSslError> &errors)
QWebSocket は、SSL ハンドシェイクの後にこのシグナルを発して、ピアの ID を確立する間に 1 つ以上のエラーが発生したことを示す。エラーは通常、 がピアを安全に識別できないことを示す。何らかのアクションを取らない限り、このシグナルが発せられた後に接続は切断されます。エラーが発生したにもかかわらず接続を続行したい場合は、このシグナルに接続されたスロットの内部から () を呼び出す必要がある。後でエラーリストにアクセスする必要がある場合は、(引数なしで) 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
ソケットが現在使用しているバージョンを返す。
© 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.