8#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
11#include <QStringDecoder>
13#include <QElapsedTimer>
30 void Write(int64_t Written = 0);
79#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
80 QTextCodec* m_utf8Codec { QTextCodec::codecForName(
"UTF-8") };
81 QTextCodec::ConverterState* m_utf8CodecState {
new QTextCodec::ConverterState };
An implementation of the WebSocket protocol...
void Close()
Initiate the close handshake when we are exiting.
DataPayloads m_dataFragments
void PingReceived(DataPayload Payload)
void SendTextFrame(const QString &Text)
void Write(int64_t Written=0)
static MythWebSocket * CreateWebsocket(bool Server, QTcpSocket *Socket, MythSocketProtocol Protocol, bool Testing)
void NewRawTextMessage(const DataPayloads &Payloads)
void NewBinaryMessage(const DataPayloads &Payloads)
void SendFrame(WSOpCode Code, const DataPayloads &Payloads)
void CloseReceived(const DataPayload &Payload)
QElapsedTimer m_writeTime
void PongReceived(const DataPayload &Payload)
void SendBinaryFrame(const QByteArray &Data)
void NewTextMessage(const StringPayload &Text)
void SendClose(WSErrorCode Code, const QString &Message={})
MythWebSocket(bool Server, QTcpSocket *Socket, MythSocketProtocol Protocol, bool Testing)
MythSocketProtocol m_protocol
QStringDecoder * m_toUtf16
WSOpCode m_formatForProtocol
~MythWebSocket() override
QByteArray m_lastPingPayload
std::vector< DataPayload > DataPayloads
std::shared_ptr< MythSharedString > StringPayload
std::shared_ptr< MythSharedData > DataPayload
std::shared_ptr< MythWebSocketFrame > WSFrame
std::deque< DataPayload > WSQueue