6#include <QtCore/QThread>
7#include <QtCore/QMutex>
10#include <imtrest/IRequestServlet.h>
11#include <imtrest/ITransport.h>
14#include <QtWebSockets/QWebSocket>
15#include <QtCore/QPointer>
22class CWebSocketServerComp;
23class CWebSocketThread;
26class CWebSocket:
public QObject
30 CWebSocket(CWebSocketThread *parent);
33 void OnWebSocketTextMessage(
const QString& textMessage);
36 CWebSocketThread* m_parent;
40class CWebSocketThread:
53 void SetWebSocket(QWebSocket* webSocketPtr);
54 const QWebSocket* GetWebSocket()
const;
55 void SetSocketStatus(Status socketStatus);
56 Status GetSocketStatus();
57 QByteArray GetRequestId();
60 [[nodiscard]]
bool IsSecureConnection()
const;
61 void EnableSecureConnection(
bool isSecureConnection =
true);
64 virtual void run()
override;
67 void OnWebSocketTextMessage(
const QString& textMessage);
70 void OnSocketDisconnected();
71 void OnWebSocketBinaryMessage(
const QByteArray& dataMessage);
72 void OnError(QAbstractSocket::SocketError error);
74 void OnAcceptError(QAbstractSocket::SocketError socketError);
75 void OnSslErrors(
const QList<QSslError> &errors);
76 void OnSendTextMessage(
const QByteArray& data)
const;
78 void SendTextMessage(
const QByteArray& data)
const;
81 CWebSocketServerComp* m_server;
83 mutable QMutex m_socketDescriptorMutex;
84 mutable QMutex m_statusMutex;
86 QPointer<QWebSocket> m_socket;
87 bool m_isSecureConnection;
90 imtrest::IRequestServlet* m_requestServerHandlerPtr;
91 imtrest::IRequestServlet* m_requestClientHandlerPtr;
92 QByteArray m_productId;
94 QByteArray m_requestId;