QWebSocket Class
Implementa un socket TCP que habla el protocolo WebSocket. Más...
| Cabecera: | #include <QWebSocket> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS WebSockets)target_link_libraries(mytarget PRIVATE Qt6::WebSockets) |
| qmake: | QT += websockets |
| Hereda: | QObject |
Funciones Públicas
| 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 |
Ranuras Públicas
| 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()) |
Señales
| 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) |
Miembros públicos estáticos
| quint64 | maxIncomingFrameSize() |
| quint64 | maxIncomingMessageSize() |
| quint64 | maxOutgoingFrameSize() |
Descripción Detallada
WebSockets es una tecnología web que proporciona canales de comunicación full-duplex a través de una única conexión TCP. El protocolo WebSocket fue estandarizado por el IETF como RFC 6455 en 2011. QWebSocket puede utilizarse tanto en una aplicación cliente como en una aplicación servidor.
Esta clase fue modelada a partir de QAbstractSocket.
QWebSocket actualmente no soporta extensiones WebSocket.
QWebSocket sólo soporta la versión 13 del protocolo WebSocket, como se indica en el RFC 6455.
Nota: Algunos proxies no entienden ciertas cabeceras HTTP utilizadas durante un handshake WebSocket. En ese caso, las conexiones WebSocket no seguras fallan. La mejor manera de mitigar este problema es utilizar WebSocket a través de una conexión segura.
Advertencia: Para generar máscaras, esta implementación de WebSockets utiliza la función razonablemente segura QRandomGenerator::global()->generate(). Para más información sobre la importancia de un buen enmascaramiento, ver "Talking to Yourself for Fun and Profit" por Lin-Shung Huang et al. La mejor medida contra los ataques mencionados en el documento anterior, es usar QWebSocket sobre una conexión segura(wss://). En general, siempre ten cuidado de no tener acceso de scripts de terceros a un QWebSocket en tu aplicación.
Vea también QAbstractSocket, QTcpSocket, y Ejemplo de cliente QWebSocket.
Documentación de Funciones Miembro
[explicit] QWebSocket::QWebSocket(const QString &origin = QString(), QWebSocketProtocol::Version version = QWebSocketProtocol::VersionLatest, QObject *parent = nullptr)
Crea un nuevo QWebSocket con el origin dado , el version del protocolo a utilizar y parent.
El origin del cliente es el especificado en RFC 6454. (El origin no es necesario para clientes que no sean navegadores web (ver RFC 6455)). El origin no puede contener caracteres de nueva línea, de lo contrario la conexión será abortada inmediatamente durante la fase de handshake.
Nota: Actualmente sólo se admite V13(RFC 6455).
[override virtual noexcept] QWebSocket::~QWebSocket()
Destruye QWebSocket. Cierra el socket si sigue abierto y libera los recursos utilizados.
void QWebSocket::abort()
Aborta el socket actual y reinicia el socket. A diferencia de close(), esta función cierra inmediatamente el socket, descartando cualquier dato pendiente en el búfer de escritura.
[signal] void QWebSocket::aboutToClose()
Esta señal se emite cuando el socket está a punto de cerrarse. Conecta esta señal si tienes operaciones que deben realizarse antes de que el socket se cierre (por ejemplo, si tienes datos en un buffer separado que deben escribirse en el dispositivo).
Véase también close().
[signal, since 6.2] void QWebSocket::alertReceived(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket emite esta señal si se ha recibido un mensaje de alerta de un par. level indica si la alerta era fatal o era una advertencia. type es el código que explica por qué se envió la alerta. Cuando se dispone de una descripción textual del mensaje de alerta, se proporciona en description.
Nota: La señal se utiliza principalmente con fines informativos y de depuración y no requiere ninguna manipulación en la aplicación. Si la alerta era fatal, el backend subyacente la gestionará y cerrará la conexión.
Nota: No todos los backends soportan esta funcionalidad.
Esta función se introdujo en Qt 6.2.
Véase también alertSent(), QSsl::AlertLevel, y QSsl::AlertType.
[signal, since 6.2] void QWebSocket::alertSent(QSsl::AlertLevel level, QSsl::AlertType type, const QString &description)
QWebSocket emite esta señal si se ha enviado un mensaje de alerta a un par. level describe si se trata de una advertencia o de un error fatal. type proporciona el código del mensaje de alerta. Cuando se dispone de una descripción textual del mensaje de alerta, se proporciona en description.
Nota: Esta señal es principalmente informativa y puede utilizarse con fines de depuración, normalmente no requiere ninguna acción por parte de la aplicación.
Nota: No todos los backends soportan esta funcionalidad.
Esta función se introdujo en Qt 6.2.
Ver también alertReceived(), QSsl::AlertLevel, y QSsl::AlertType.
[signal, since 6.6] void QWebSocket::authenticationRequired(QAuthenticator *authenticator)
Esta señal se emite cuando el servidor requiere autenticación. El objeto authenticator debe entonces ser rellenado con los detalles requeridos para permitir la autenticación y continuar la conexión.
Si sabes que el servidor puede requerir autenticación, puedes establecer el nombre de usuario y la contraseña en el QUrl inicial, utilizando QUrl::setUserName y QUrl::setPassword. QWebSocket seguirá intentando conectarse una vez sin utilizar las credenciales proporcionadas.
Nota: No es posible utilizar una QueuedConnection para conectarse a esta señal, ya que la conexión fallará si el autenticador no ha sido rellenado con nueva información cuando la señal retorne.
Esta función se introdujo en Qt 6.6.
Véase también QAuthenticator.
[signal] void QWebSocket::binaryFrameReceived(const QByteArray &frame, bool isLastFrame)
Esta señal se emite cada vez que se recibe una trama binaria. frame contiene los datos y isLastFrame indica si se trata de la última trama del mensaje completo.
Esta señal puede utilizarse para procesar mensajes grandes trama a trama, en lugar de esperar a que llegue el mensaje completo.
Véase también textFrameReceived().
[signal] void QWebSocket::binaryMessageReceived(const QByteArray &message)
Esta señal se emite cada vez que se recibe un mensaje binario. message contiene los bytes recibidos.
Véase también textMessageReceived().
qint64 QWebSocket::bytesToWrite() const
Devuelve el número de bytes que están esperando a ser escritos. Los bytes se escriben cuando el control vuelve al bucle de eventos o cuando se llama a flush().
Véase también flush.
[signal] void QWebSocket::bytesWritten(qint64 bytes)
Esta señal se emite cada vez que se ha escrito una carga de datos en el socket. El argumento bytes se establece en el número de bytes que se han escrito en esta carga útil.
Nota: Esta señal tiene el mismo significado tanto para WebSockets seguros como no seguros. A diferencia de QSslSocket, bytesWritten() sólo se emite cuando se escriben efectivamente datos cifrados (véase QSslSocket::encryptedBytesWritten()).
Véase también close().
[slot] void QWebSocket::close(QWebSocketProtocol::CloseCode closeCode = QWebSocketProtocol::CloseCodeNormal, const QString &reason = QString())
Cierra el socket con closeCode y reason.
Cualquier dato en el búfer de escritura se vacía antes de cerrar el socket. El closeCode es un QWebSocketProtocol::CloseCode indicando la razón para cerrar, y reason describe la razón del cierre más detalladamente. Todas las tramas de control, incluida la trama Close, están limitadas a 125 bytes. Dado que dos de ellos se utilizan para closeCode, ¡la longitud máxima de reason es 123! Si reason excede este límite será truncado.
QWebSocketProtocol::CloseCode QWebSocket::closeCode() const
Devuelve el código que indica por qué se cerró el socket.
Véase también QWebSocketProtocol::CloseCode y closeReason().
QString QWebSocket::closeReason() const
Devuelve la razón por la que se cerró el socket.
Véase también closeCode().
[signal] void QWebSocket::connected()
Se emite cuando la conexión se ha establecido correctamente. Una conexión se establece con éxito cuando el socket se conecta y el handshake se realiza correctamente.
Véase también open() y disconnected().
[since 6.2] void QWebSocket::continueInterruptedHandshake()
Si una aplicación desea concluir un handshake incluso después de recibir la señal handshakeInterruptedOnError(), debe llamar a esta función. Esta llamada debe realizarse desde una función de ranura adjunta a la señal. La conexión señal-slot debe ser directa.
Esta función se introdujo en Qt 6.2.
Véase también handshakeInterruptedOnError() y QSslConfiguration::setHandshakeMustInterruptOnError().
[signal] void QWebSocket::disconnected()
Se emite cuando se desconecta el socket.
Véase también close() y connected().
QAbstractSocket::SocketError QWebSocket::error() const
Devuelve el tipo de error que se produjo por última vez
Véase también errorString().
[signal, since 6.5] void QWebSocket::errorOccurred(QAbstractSocket::SocketError error)
Esta señal se emite tras producirse un error.
El parámetro error describe el tipo de error que se ha producido.
QAbstractSocket::SocketError no es un metatipo registrado, por lo que para conexiones en cola, tendrás que registrarlo con Q_DECLARE_METATYPE() y qRegisterMetaType().
Esta función se introdujo en Qt 6.5.
Véase también error() y errorString().
QString QWebSocket::errorString() const
Devuelve una descripción legible por humanos del último error que se ha producido.
Véase también error().
bool QWebSocket::flush()
Esta función escribe tanto como sea posible desde el búfer de escritura interno al socket de red subyacente, sin bloquear. Si se ha escrito algún dato, esta función devuelve true; en caso contrario, devuelve false. Llame a esta función si necesita que QWebSocket comience a enviar datos almacenados inmediatamente. El número de bytes escritos con éxito depende del sistema operativo. En la mayoría de los casos, no es necesario llamar a esta función, porque QWebSocket empezará a enviar datos automáticamente una vez que el control vuelva al bucle de eventos.
[signal, since 6.2] void QWebSocket::handshakeInterruptedOnError(const QSslError &error)
QWebSocket emite esta señal si se ha encontrado un error de verificación de certificado y si se ha habilitado la notificación anticipada de errores en QSslConfiguration. Se espera que una aplicación inspeccione el error y decida si quiere continuar con el handshake, o abortarlo y enviar un mensaje de alerta al peer. La conexión señal-ranura debe ser directa.
Esta función se introdujo en Qt 6.2.
Véase también continueInterruptedHandshake(), sslErrors(), y QSslConfiguration::setHandshakeMustInterruptOnError().
[since 6.4] QWebSocketHandshakeOptions QWebSocket::handshakeOptions() const
Devuelve las opciones de handshake que se usaron para abrir este socket.
Esta función se introdujo en Qt 6.4.
[slot] void QWebSocket::ignoreSslErrors()
Esta ranura indica a QWebSocket que ignore los errores durante la fase de handshake de QWebSocket y continúe con la conexión. Si quieres continuar con la conexión incluso si se producen errores durante la fase de handshake, entonces debes llamar a esta ranura, ya sea desde una ranura conectada a sslErrors(), o antes de la fase de handshake. Si no llama a esta ranura, ya sea en respuesta a errores o antes del handshake, la conexión se interrumpirá después de que se haya emitido la señal sslErrors().
Advertencia: Asegúrate de dejar siempre que el usuario inspeccione los errores reportados por la señal sslErrors(), y sólo llama a este método cuando el usuario confirme que todo va bien. Si hay errores inesperados, la conexión debe ser abortada. Llamar a este método sin inspeccionar los errores reales probablemente supondrá un riesgo de seguridad para tu aplicación. Utilícelo con mucho cuidado.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload<>(&QWebSocket::ignoreSslErrors));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket]() { receiver->ignoreSslErrors(); });Véase también sslErrors(), QSslSocket::ignoreSslErrors(), y QNetworkReply::ignoreSslErrors().
void QWebSocket::ignoreSslErrors(const QList<QSslError> &errors)
Este método indica a QWebSocket que ignore los errores indicados en errors.
Tenga en cuenta que puede establecer el certificado esperado en el error SSL: Si, por ejemplo, desea conectarse a un servidor que utiliza un certificado autofirmado, considere el siguiente fragmento:
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")));
Múltiples llamadas a esta función reemplazarán la lista de errores que fueron pasados en llamadas previas. Puede borrar la lista de errores que desea ignorar llamando a esta función con una lista vacía.
Se trata de una función sobrecargada.
Véase también sslErrors().
bool QWebSocket::isValid() const
Devuelve true si el socket está listo para lectura y escritura; en caso contrario devuelve false.
QHostAddress QWebSocket::localAddress() const
Devuelve la dirección local
quint16 QWebSocket::localPort() const
Devuelve el puerto local
const QMaskGenerator *QWebSocket::maskGenerator() const
Devuelve el generador de máscaras que utiliza actualmente este QWebSocket.
Véase también setMaskGenerator().
quint64 QWebSocket::maxAllowedIncomingFrameSize() const
Devuelve el tamaño máximo permitido de una trama de websocket entrante.
Véase también setMaxAllowedIncomingFrameSize().
quint64 QWebSocket::maxAllowedIncomingMessageSize() const
Devuelve el tamaño máximo permitido de un mensaje websocket entrante.
Véase también setMaxAllowedIncomingMessageSize().
[static] quint64 QWebSocket::maxIncomingFrameSize()
Devuelve el tamaño máximo admitido de una trama de websocket entrante para esta implementación de websocket.
[static] quint64 QWebSocket::maxIncomingMessageSize()
Devuelve el tamaño máximo admitido de un mensaje entrante de websocket para esta implementación de websocket.
[static] quint64 QWebSocket::maxOutgoingFrameSize()
Devuelve el tamaño máximo admitido de una trama de websocket saliente para esta implementación de websocket.
[slot] void QWebSocket::open(const QNetworkRequest &request)
Abre una conexión WebSocket utilizando la dirección request.
La url request se utilizará para abrir la conexión WebSocket. Las cabeceras presentes en la petición serán enviadas al servidor en la petición de actualización, junto con las necesarias para el websocket handshake.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QNetworkRequest &request) { receiver->open(request); }); [slot] void QWebSocket::open(const QUrl &url)
Abre una conexión WebSocket utilizando la dirección url.
Si la url contiene caracteres de nueva línea (\r\n ), entonces la señal de error será emitida con QAbstractSocket::ConnectionRefusedError como tipo de error.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QUrl &url) { receiver->open(url); }); [slot, since 6.4] void QWebSocket::open(const QNetworkRequest &request, const QWebSocketHandshakeOptions &options)
Abre una conexión WebSocket utilizando los datos request y options.
La url request se utilizará para abrir la conexión WebSocket. Las cabeceras presentes en la petición serán enviadas al servidor en la petición de actualización, junto con las necesarias para el websocket handshake.
Se pueden especificar opciones adicionales para el handshake WebSocket, como subprotocolos, en options.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QNetworkRequest &request, const QWebSocketHandshakeOptions &options) { receiver->open(request, options); }); Esta función se introdujo en Qt 6.4.
[slot, since 6.4] void QWebSocket::open(const QUrl &url, const QWebSocketHandshakeOptions &options)
Abre una conexión WebSocket utilizando los datos url y options.
Si la url contiene caracteres de nueva línea (\r\n ), entonces la señal de error será emitida con QAbstractSocket::ConnectionRefusedError como tipo de error.
Se pueden especificar opciones adicionales para el handshake WebSocket, como subprotocolos, en options.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
webSocket, qOverload(&QWebSocket::open));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
webSocket, [receiver = webSocket](const QUrl &url, const QWebSocketHandshakeOptions &options) { receiver->open(url, options); }); Esta función se introdujo en Qt 6.4.
QString QWebSocket::origin() const
Devuelve el origen actual.
quint64 QWebSocket::outgoingFrameSize() const
Devuelve el tamaño máximo de una trama de websocket saliente.
Véase también setOutgoingFrameSize().
QAbstractSocket::PauseModes QWebSocket::pauseMode() const
Devuelve el modo de pausa de este socket
Véase también setPauseMode().
QHostAddress QWebSocket::peerAddress() const
Devuelve la dirección del homólogo
QString QWebSocket::peerName() const
Devuelve el peerName
quint16 QWebSocket::peerPort() const
Devuelve el peerport
[signal, since 6.2] void QWebSocket::peerVerifyError(const QSslError &error)
QWebSocket puede emitir esta señal varias veces durante el handshake SSL, antes de que se haya establecido el cifrado, para indicar que se ha producido un error al establecer la identidad del peer. La error suele ser una indicación de que QWebSocket es incapaz de identificar de forma segura al peer.
Esta señal te proporciona una indicación temprana de que algo va mal. Al conectarte a esta señal, puedes elegir manualmente cortar la conexión desde dentro de la ranura conectada antes de que el apretón de manos se haya completado. Si no se realiza ninguna acción, QWebSocket procederá a emitir QWebSocket::sslErrors().
Esta función se introdujo en Qt 6.2.
Véase también sslErrors().
[slot] void QWebSocket::ping(const QByteArray &payload = QByteArray())
Hace ping al servidor para indicar que la conexión sigue viva. Se puede enviar un payload adicional junto con el mensaje ping.
El tamaño de payload no puede ser superior a 125 bytes. Si es mayor, payload se recorta a 125 bytes.
Nota: QWebSocket y QWebSocketServer gestionan las solicitudes de ping internamente, lo que significa que devuelven automáticamente una respuesta pong al peer.
Véase también pong().
[signal] void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload)
Se emite cuando se recibe un mensaje pong en respuesta a un ping anterior. elapsedTime contiene el tiempo de ida y vuelta en milisegundos y payload contiene una carga útil opcional que se envió con el ping.
Véase también ping().
[signal] void QWebSocket::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
Esta señal se emite si el protocolo SSL/TLS negocia un cifrado PSK y, por tanto, se requiere una autenticación PSK.
Cuando se utiliza PSK, el cliente debe enviar al servidor una identidad válida y una clave precompartida válida, para que el handshake SSL pueda continuar. Las aplicaciones pueden proporcionar esta información en una ranura conectada a esta señal, rellenando el objeto authenticator pasado según sus necesidades.
Nota: Ignorar esta señal, o no proporcionar las credenciales requeridas, causará que el handshake falle, y por lo tanto que la conexión sea abortada.
Nota: El objeto authenticator es propiedad del websocket y no debe ser borrado por la aplicación.
Véase también QSslPreSharedKeyAuthenticator y QSslSocket::preSharedKeyAuthenticationRequired().
QNetworkProxy QWebSocket::proxy() const
Devuelve el proxy configurado actualmente
Véase también setProxy().
[signal] void QWebSocket::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
Esta señal puede emitirse cuando se utiliza un proxy que requiere autenticación. El objeto authenticator puede entonces ser rellenado con los detalles requeridos para permitir la autenticación y continuar la conexión.
Nota: No es posible utilizar una QueuedConnection para conectarse a esta señal, ya que la conexión fallará si el autenticador no ha sido rellenado con nueva información cuando la señal retorne.
Véase también QAuthenticator y QNetworkProxy.
qint64 QWebSocket::readBufferSize() const
Devuelve el tamaño en bytes del buffer de lectura utilizado por el socket.
Véase también setReadBufferSize().
[signal] void QWebSocket::readChannelFinished()
Esta señal se emite cuando el flujo de entrada (lectura) se cierra en este dispositivo. Se emite en cuanto se detecta el cierre.
Véase también close().
QNetworkRequest QWebSocket::request() const
Devuelve la petición que fue o será utilizada para abrir este socket.
QUrl QWebSocket::requestUrl() const
Devuelve la url a la que está conectado o se conectará el socket.
QString QWebSocket::resourceName() const
Devuelve el nombre del recurso al que se accede actualmente.
void QWebSocket::resume()
Continúa la transferencia de datos en el socket. Este método sólo debe utilizarse después de que el socket haya sido configurado para pausarse ante notificaciones y se haya recibido una notificación. La única notificación soportada actualmente es sslErrors(). Llamar a este método si el socket no está en pausa resulta en un comportamiento indefinido.
Véase también pauseMode() y setPauseMode().
qint64 QWebSocket::sendBinaryMessage(const QByteArray &data)
Envía el data dado a través del socket como un mensaje binario y devuelve el número de bytes realmente enviados.
Véase también sendTextMessage().
qint64 QWebSocket::sendTextMessage(const QString &message)
Envía el message dado a través del socket como un mensaje de texto y devuelve el número de bytes realmente enviados.
Véase también sendBinaryMessage().
void QWebSocket::setMaskGenerator(const QMaskGenerator *maskGenerator)
Establece el generador que se utilizará para crear máscaras en maskGenerator. El generador predeterminado QWebSocket puede restablecerse proporcionando un nullptr. El generador de máscaras puede cambiarse en cualquier momento, incluso mientras la conexión está abierta.
Véase también maskGenerator().
void QWebSocket::setMaxAllowedIncomingFrameSize(quint64 maxAllowedIncomingFrameSize)
Establece el tamaño máximo permitido de una trama entrante de websocket en maxAllowedIncomingFrameSize. Si una trama entrante excede este límite, el peer se desconecta. El rango aceptado está entre 0 y maxIncomingFrameSize(), por defecto es maxIncomingFrameSize(). El propósito de esta función es evitar agotar la memoria virtual.
Véase también maxAllowedIncomingFrameSize().
void QWebSocket::setMaxAllowedIncomingMessageSize(quint64 maxAllowedIncomingMessageSize)
Establece el tamaño máximo permitido de un mensaje websocket entrante en maxAllowedIncomingMessageSize. Si un mensaje entrante excede este límite, el peer se desconecta. El rango aceptado está entre 0 y maxIncomingMessageSize(), por defecto es maxIncomingMessageSize(). El propósito de esta función es evitar agotar la memoria virtual.
Véase también maxAllowedIncomingMessageSize().
void QWebSocket::setOutgoingFrameSize(quint64 outgoingFrameSize)
Establece el tamaño máximo de una trama de websocket saliente en outgoingFrameSize. El rango aceptado está entre 0 y maxOutgoingFrameSize(), por defecto es 512kB. El propósito de esta función es adaptarse al tamaño máximo de trama permitido del receptor.
Véase también outgoingFrameSize().
void QWebSocket::setPauseMode(QAbstractSocket::PauseModes pauseMode)
Controla si se debe hacer una pausa al recibir una notificación. El parámetro pauseMode especifica las condiciones en las que el socket debe ser pausado.
La única notificación soportada actualmente es sslErrors(). Si se establece a PauseOnSslErrors, la transferencia de datos en el socket se pausará y necesitará ser habilitada explícitamente de nuevo llamando a resume(). Por defecto, esta opción está establecida a PauseNever. Esta opción debe ser llamada antes de conectarse al servidor, de lo contrario resultará en un comportamiento indefinido.
Véase también pauseMode() y resume().
void QWebSocket::setProxy(const QNetworkProxy &networkProxy)
Establece el proxy en networkProxy
Véase también proxy().
void QWebSocket::setReadBufferSize(qint64 size)
Establece el tamaño del búfer de lectura interno de QWebSocket en size bytes.
Si el tamaño del búfer está limitado a un cierto tamaño, QWebSocket no almacenará más que este tamaño de datos. Excepcionalmente, un tamaño de buffer de 0 significa que el buffer de lectura es ilimitado y todos los datos entrantes son almacenados en el buffer. Este es el valor por defecto. Esta opción es útil si sólo lees los datos en ciertos momentos (por ejemplo, en una aplicación de streaming en tiempo real) o si quieres proteger tu socket contra la recepción de demasiados datos, lo que eventualmente puede causar que tu aplicación se quede sin memoria.
Véase también readBufferSize().
void QWebSocket::setSslConfiguration(const QSslConfiguration &sslConfiguration)
Establece la configuración SSL del socket para que sea el contenido de sslConfiguration.
Esta función establece el certificado local, los cifradores, la clave privada y los certificados CA a los almacenados en sslConfiguration. No es posible establecer los campos relacionados con el estado SSL.
Véase también sslConfiguration().
QSslConfiguration QWebSocket::sslConfiguration() const
Devuelve el estado de configuración SSL del socket. La configuración SSL por defecto de un socket es usar los cifrados por defecto, certificados CA por defecto, sin clave privada local ni certificado. La configuración SSL también contiene campos que pueden cambiar con el tiempo sin previo aviso.
Véase también setSslConfiguration().
[signal] void QWebSocket::sslErrors(const QList<QSslError> &errors)
QWebSocket emite esta señal después del handshake SSL para indicar que se han producido uno o más errores al establecer la identidad del peer. Los errores son normalmente una indicación de que QWebSocket es incapaz de identificar de forma segura al peer. A menos que se realice alguna acción, la conexión se interrumpirá tras la emisión de esta señal. Si desea continuar la conexión a pesar de los errores que se han producido, debe llamar a QWebSocket::ignoreSslErrors() desde dentro de una ranura conectada a esta señal. Si necesitas acceder a la lista de errores en un momento posterior, puedes llamar a sslErrors() (sin argumentos).
errors contiene uno o más errores que impiden a QWebSocket verificar la identidad del peer.
Nota: No puede utilizar Qt::QueuedConnection cuando se conecte a esta señal, o llamar a QWebSocket::ignoreSslErrors() no tendrá ningún efecto.
QAbstractSocket::SocketState QWebSocket::state() const
Devuelve el estado actual del socket.
[signal] void QWebSocket::stateChanged(QAbstractSocket::SocketState state)
Esta señal se emite cada vez que cambia el estado de QWebSocket. El parámetro state es el nuevo estado.
Nota: QAbstractSocket::ConnectedState se emite después de que el handshake con el servidor haya tenido éxito.
QAbstractSocket::SocketState no es un metatipo registrado, así que para conexiones en cola, tendrás que registrarlo con Q_REGISTER_METATYPE() y qRegisterMetaType().
Véase también state().
[since 6.4] QString QWebSocket::subprotocol() const
Devuelve el protocolo WebSocket utilizado.
Esta función se introdujo en Qt 6.4.
[signal] void QWebSocket::textFrameReceived(const QString &frame, bool isLastFrame)
Esta señal se emite cada vez que se recibe una trama de texto. frame contiene los datos y isLastFrame indica si se trata de la última trama del mensaje completo.
Esta señal puede utilizarse para procesar mensajes grandes trama a trama, en lugar de esperar a que llegue el mensaje completo.
Véase también binaryFrameReceived().
[signal] void QWebSocket::textMessageReceived(const QString &message)
Esta señal se emite cada vez que se recibe un mensaje de texto. El message contiene el texto recibido.
Véase también binaryMessageReceived().
QWebSocketProtocol::Version QWebSocket::version() const
Devuelve la versión que el socket está utilizando actualmente.
© 2026 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.