QWebSocketProtocol Namespace

Contains constants related to the WebSocket standard. \since 5.3. More...

Header: #include <QWebSocketProtocol>

Types

enum CloseCode { CloseCodeNormal, CloseCodeGoingAway, CloseCodeProtocolError, CloseCodeDatatypeNotSupported, CloseCodeReserved1004, …, CloseCodeTlsHandshakeFailed }
enum OpCode { OpCodeContinue, OpCodeText, OpCodeBinary, OpCodeReserved3, OpCodeReserved4, …, OpCodeReservedF }
enum Version { VersionUnknown, Version0, Version4, Version5, Version6, …, VersionLatest }

Functions

Version currentVersion()
bool isCloseCodeValid(int closeCode)
void mask(QByteArray *payload, quint32 maskingKey)
void mask(char *payload, quint64 size, quint32 maskingKey)
Version versionFromString(QStringView versionString)

Detailed Description

\inmoduleQtWebSockets

Type Documentation

enum QWebSocketProtocol::CloseCode

\inmoduleQtWebSockets

The close codes supported by WebSockets V13

ConstantValueDescription
QWebSocketProtocol::CloseCodeNormal1000Normal closure
QWebSocketProtocol::CloseCodeGoingAway1001Going away
QWebSocketProtocol::CloseCodeProtocolError1002Protocol error
QWebSocketProtocol::CloseCodeDatatypeNotSupported1003Unsupported data
QWebSocketProtocol::CloseCodeReserved10041004Reserved
QWebSocketProtocol::CloseCodeMissingStatusCode1005No status received
QWebSocketProtocol::CloseCodeAbnormalDisconnection1006Abnormal closure
QWebSocketProtocol::CloseCodeWrongDatatype1007Invalid frame payload data
QWebSocketProtocol::CloseCodePolicyViolated1008Policy violation
QWebSocketProtocol::CloseCodeTooMuchData1009Message too big
QWebSocketProtocol::CloseCodeMissingExtension1010Mandatory extension missing
QWebSocketProtocol::CloseCodeBadOperation1011Internal server error
QWebSocketProtocol::CloseCodeTlsHandshakeFailed1015TLS handshake failed

See also QWebSocket::close().

enum QWebSocketProtocol::OpCode

\inmoduleQtWebSockets

The frame opcodes as defined by the WebSockets standard

ConstantValueDescription
QWebSocketProtocol::OpCodeContinue0x0Continuation frame
QWebSocketProtocol::OpCodeText0x1Text frame
QWebSocketProtocol::OpCodeBinary0x2Binary frame
QWebSocketProtocol::OpCodeReserved30x3Reserved
QWebSocketProtocol::OpCodeReserved40x4Reserved
QWebSocketProtocol::OpCodeReserved50x5Reserved
QWebSocketProtocol::OpCodeReserved60x6Reserved
QWebSocketProtocol::OpCodeReserved70x7Reserved
QWebSocketProtocol::OpCodeClose0x8Close frame
QWebSocketProtocol::OpCodePing0x9Ping frame
QWebSocketProtocol::OpCodePong0xAPong frame
QWebSocketProtocol::OpCodeReservedB0xBReserved
QWebSocketProtocol::OpCodeReservedC0xCReserved
QWebSocketProtocol::OpCodeReservedD0xDReserved
QWebSocketProtocol::OpCodeReservedE0xEReserved
QWebSocketProtocol::OpCodeReservedF0xFReserved

\internal

enum QWebSocketProtocol::Version

\inmoduleQtWebSockets

The different defined versions of the WebSocket protocol.

For an overview of the differences between the different protocols, see pywebsocket's WebSocketProtocolSpec.

ConstantValueDescription
QWebSocketProtocol::VersionUnknown-1Unknown or unspecified version.
QWebSocketProtocol::Version00hixie76 and hybi-00. Works with key1, key2 and a key in the payload. Attribute: Sec-WebSocket-Draft value 0. Not supported by QtWebSockets.
QWebSocketProtocol::Version44hybi-04. Changed handshake: key1, key2, key3 ==> Sec-WebSocket-Key, Sec-WebSocket-Nonce, Sec-WebSocket-Accept Sec-WebSocket-Draft renamed to Sec-WebSocket-Version Sec-WebSocket-Version = 4. Not supported by QtWebSockets.
QWebSocketProtocol::Version55hybi-05. Sec-WebSocket-Version = 5 Removed Sec-WebSocket-Nonce Added Sec-WebSocket-Accept. Not supported by QtWebSockets.
QWebSocketProtocol::Version66Sec-WebSocket-Version = 6. Not supported by QtWebSockets.
QWebSocketProtocol::Version77hybi-07. Sec-WebSocket-Version = 7. Not supported by QtWebSockets.
QWebSocketProtocol::Version88hybi-8, hybi-9, hybi-10, hybi-11 and hybi-12. Status codes 1005 and 1006 are added and all codes are now unsigned Internal error results in 1006. Not supported by QtWebSockets.
QWebSocketProtocol::Version1313hybi-13, hybi14, hybi-15, hybi-16, hybi-17 and RFC 6455. Sec-WebSocket-Version = 13 Status code 1004 is now reserved Added 1008, 1009 and 1010 Must support TLS Clarify multiple version support. Supported by QtWebSockets.
QWebSocketProtocol::VersionLatestVersion13Refers to the latest known version to QtWebSockets.

Function Documentation

Version QWebSocketProtocol::currentVersion()

Returns the latest version that WebSocket is supporting

\internal

bool QWebSocketProtocol::isCloseCodeValid(int closeCode)

Checks if closeCode is a valid WebSocket close code

\internal

void QWebSocketProtocol::mask(QByteArray *payload, quint32 maskingKey)

Mask the payload with the given maskingKey and stores the result back in payload.

\internal

void QWebSocketProtocol::mask(char *payload, quint64 size, quint32 maskingKey)

Masks the payload of length size with the given maskingKey and stores the result back in payload.

\internal

Version QWebSocketProtocol::versionFromString(QStringView versionString)

Parses the versionString and converts it to a Version value

\internal