22#include <QSslConfiguration>
23#include <QReadWriteLock>
48 m_rwlock.lockForRead();
60 bool m_running {
true};
164 ,
const QSslConfiguration& sslConfig
169 void run(
void)
override;
213 ,
const QSslConfiguration& sslConfig
248 bool SendText(
const QString &message);
249 bool SendText(
const QByteArray &message);
264 bool SendPing(
const QByteArray &payload);
265 bool SendPong(
const QByteArray &payload);
Manages a collection of sockets listening on different ports.
virtual void newTcpConnection(qintptr socket)
Base class for extensions.
void SendTextMessage(const QString &)
virtual bool HandleTextFrame(const WebSocketFrame &)
~WebSocketExtension() override=default
virtual bool HandleBinaryFrame(const WebSocketFrame &)
WebSocketExtension()=default
void SendBinaryMessage(const QByteArray &)
A representation of a single WebSocket frame.
The WebSocket server, which listens for connections.
QSslConfiguration m_sslConfig
bool IsRunning(void) const
The thread in which WebSocketWorker does it's thing.
WebSocketServer & m_webSocketServer
~WebSocketWorkerThread() override=default
PoolServerType m_connectionType
WebSocketWorkerThread(WebSocketServer &webSocketServer, qintptr sock, PoolServerType type, const QSslConfiguration &sslConfig)
QSslConfiguration m_sslConfig
Performs all the protocol-level work for a single websocket connection.
void HandleCloseConnection(const QByteArray &payload)
bool SendBinary(const QByteArray &data)
void HandleDataFrame(const WebSocketFrame &frame)
void ProcessFrames(QTcpSocket *socket)
Returns false if an error occurs.
QSslConfiguration m_sslConfig
QList< WebSocketExtension * > m_extensions
static QByteArray CreateFrame(WebSocketFrame::OpCode type, const QByteArray &payload)
void RegisterExtension(WebSocketExtension *extension)
WebSocketServer & m_webSocketServer
bool SendPong(const QByteArray &payload)
WebSocketFrame m_readFrame
bool SendClose(ErrorCode errCode, const QString &message=QString())
void HandleControlFrame(const WebSocketFrame &frame)
Returns false if an error occurs.
bool SendText(const QString &message)
WebSocketWorker(WebSocketServer &webSocketServer, qintptr sock, PoolServerType type, const QSslConfiguration &sslConfig)
void DeregisterExtension(WebSocketExtension *extension)
bool SendFrame(const QByteArray &frame)
bool SendPing(const QByteArray &payload)
PoolServerType m_connectionType
bool ProcessHandshake(QTcpSocket *socket)
~WebSocketWorker() override