- Qt 5.15
- Qt WebSockets
- QWebSocketProtocol Namespace
- Qt 5.15.19 Reference Documentation

# QWebSocketProtocol Namespace

Contains constants related to the WebSocket standard. More...

Header: | #include <QWebSocketProtocol>
qmake: | QT += websockets
Since: | Qt 5.3

This namespace was introduced in Qt 5.3.

## Types

enum | CloseCode { CloseCodeNormal, CloseCodeGoingAway, CloseCodeProtocolError, CloseCodeDatatypeNotSupported, CloseCodeReserved1004, …, CloseCodeTlsHandshakeFailed }
enum | Version { VersionUnknown, Version0, Version4, Version5, Version6, …, VersionLatest }

## Detailed Description

## Type Documentation

### enum QWebSocketProtocol::CloseCode

The close codes supported by WebSockets V13

Constant | Value | Description
--- | --- | ---
`QWebSocketProtocol::CloseCodeNormal` | `1000` | Normal closure
`QWebSocketProtocol::CloseCodeGoingAway` | `1001` | Going away
`QWebSocketProtocol::CloseCodeProtocolError` | `1002` | Protocol error
`QWebSocketProtocol::CloseCodeDatatypeNotSupported` | `1003` | Unsupported data
`QWebSocketProtocol::CloseCodeReserved1004` | `1004` | Reserved
`QWebSocketProtocol::CloseCodeMissingStatusCode` | `1005` | No status received
`QWebSocketProtocol::CloseCodeAbnormalDisconnection` | `1006` | Abnormal closure
`QWebSocketProtocol::CloseCodeWrongDatatype` | `1007` | Invalid frame payload data
`QWebSocketProtocol::CloseCodePolicyViolated` | `1008` | Policy violation
`QWebSocketProtocol::CloseCodeTooMuchData` | `1009` | Message too big
`QWebSocketProtocol::CloseCodeMissingExtension` | `1010` | Mandatory extension missing
`QWebSocketProtocol::CloseCodeBadOperation` | `1011` | Internal server error
`QWebSocketProtocol::CloseCodeTlsHandshakeFailed` | `1015` | TLS handshake failed

See also QWebSocket::close().

### enum QWebSocketProtocol::Version

The different defined versions of the WebSocket protocol.

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

Constant | Value | Description
--- | --- | ---
`QWebSocketProtocol::VersionUnknown` | `-1` | Unknown or unspecified version.
`QWebSocketProtocol::Version0` | `0` | hixie76 and hybi-00. Works with key1, key2 and a key in the payload. Attribute: Sec-WebSocket-Draft value 0. Not supported by QtWebSockets.
`QWebSocketProtocol::Version4` | `4` | hybi-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::Version5` | `5` | hybi-05. Sec-WebSocket-Version = 5 Removed Sec-WebSocket-Nonce Added Sec-WebSocket-Accept. Not supported by QtWebSockets.
`QWebSocketProtocol::Version6` | `6` | Sec-WebSocket-Version = 6. Not supported by QtWebSockets.
`QWebSocketProtocol::Version7` | `7` | hybi-07. Sec-WebSocket-Version = 7. Not supported by QtWebSockets.
`QWebSocketProtocol::Version8` | `8` | hybi-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::Version13` | `13` | hybi-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::VersionLatest` | `Version13` | Refers to the latest known version to QtWebSockets.