fhq-server  v0.2.33
Documentation for fhq-server. FreeHackQuest is an open source platform for competitions of computer security.
Signals | Public Member Functions | Private Slots | Private Member Functions | Private Attributes | List of all members
WebSocketServer Class Reference

WebSocket Server implementation Implemented ws://addr:1234 and wss://addr:4613 (optional) More...

#include <websocketserver.h>

Inheritance diagram for WebSocketServer:
Inheritance graph
[legend]
Collaboration diagram for WebSocketServer:
Collaboration graph
[legend]

Signals

void closed ()
 
void sig_sendToAll (QString jsonMessage)
 
void signal_sendToOne (QWebSocket *pClient, QString jsonMessage)
 

Public Member Functions

 WebSocketServer (QObject *parent=Q_NULLPTR)
 
 ~WebSocketServer ()
 
bool isFailed ()
 
virtual int getConnectedUsers () override
 
virtual void sendMessage (QWebSocket *pClient, const nlohmann::json &jsonResponse) override
 
virtual void sendMessageError (QWebSocket *pClient, const std::string &sCmd, const std::string &sM, WsjcppError error) override
 
virtual void sendToAll (const nlohmann::json &jsonMessage) override
 
void sendToOne (QWebSocket *pClient, const nlohmann::json &jsonMessage) override
 
virtual void setWsjcppUserSession (QWebSocket *pClient, WsjcppUserSession *pWsjcppUserSession) override
 
virtual WsjcppUserSessiongetWsjcppUserSession (QWebSocket *pClient) override
 
void removeWsjcppUserSession (QWebSocket *pClient)
 

Private Slots

void onNewConnection ()
 Handling new connection by ws://. More...
 
void onNewConnectionSSL ()
 Handling new connection by wss://. More...
 
void processTextMessage (const QString &message)
 
void processBinaryMessage (QByteArray message)
 
void socketDisconnected ()
 
void onSslErrors (const QList< QSslError > &errors)
 
void slot_sendToAll (QString jsonMessage)
 
void slot_sendToOne (QWebSocket *pClient, QString message)
 

Private Member Functions

void initNewConnection (const std::string &sPrefix, QWebSocket *pSocket)
 
void sendServerMessage (QWebSocket *pSocket)
 
void logSocketError (QAbstractSocket::SocketError socketError)
 

Private Attributes

QWebSocketServer * m_pWebSocketServer
 
QWebSocketServer * m_pWebSocketServerSSL
 
QList< QWebSocket * > m_clients
 
std::vector< WsjcppSocketClient * > m_vClients
 
std::mutex m_mtxUserSession
 
std::map< QWebSocket *, WsjcppUserSession * > m_mapUserSession
 
bool m_bFailed
 
std::string TAG
 

Detailed Description

WebSocket Server implementation Implemented ws://addr:1234 and wss://addr:4613 (optional)

This object handle income connections. Processing income messages. Control database connections

Constructor & Destructor Documentation

◆ WebSocketServer()

WebSocketServer::WebSocketServer ( QObject *  parent = Q_NULLPTR)
explicit

◆ ~WebSocketServer()

WebSocketServer::~WebSocketServer ( )

Member Function Documentation

◆ closed

void WebSocketServer::closed ( )
signal

◆ getConnectedUsers()

int WebSocketServer::getConnectedUsers ( )
overridevirtual

Implements IWebSocketServer.

◆ getWsjcppUserSession()

WsjcppUserSession * WebSocketServer::getWsjcppUserSession ( QWebSocket *  pClient)
overridevirtual

Implements IWebSocketServer.

◆ initNewConnection()

void WebSocketServer::initNewConnection ( const std::string &  sPrefix,
QWebSocket *  pSocket 
)
private

◆ isFailed()

bool WebSocketServer::isFailed ( )

◆ logSocketError()

void WebSocketServer::logSocketError ( QAbstractSocket::SocketError  socketError)
private

◆ onNewConnection

void WebSocketServer::onNewConnection ( )
privateslot

Handling new connection by ws://.

◆ onNewConnectionSSL

void WebSocketServer::onNewConnectionSSL ( )
privateslot

Handling new connection by wss://.

◆ onSslErrors

void WebSocketServer::onSslErrors ( const QList< QSslError > &  errors)
privateslot

◆ processBinaryMessage

void WebSocketServer::processBinaryMessage ( QByteArray  message)
privateslot

◆ processTextMessage

void WebSocketServer::processTextMessage ( const QString &  message)
privateslot

◆ removeWsjcppUserSession()

void WebSocketServer::removeWsjcppUserSession ( QWebSocket *  pClient)

◆ sendMessage()

void WebSocketServer::sendMessage ( QWebSocket *  pClient,
const nlohmann::json &  jsonResponse 
)
overridevirtual

Implements IWebSocketServer.

◆ sendMessageError()

void WebSocketServer::sendMessageError ( QWebSocket *  pClient,
const std::string &  sCmd,
const std::string &  sM,
WsjcppError  error 
)
overridevirtual

Implements IWebSocketServer.

◆ sendServerMessage()

void WebSocketServer::sendServerMessage ( QWebSocket *  pSocket)
private

◆ sendToAll()

void WebSocketServer::sendToAll ( const nlohmann::json &  jsonMessage)
overridevirtual

Implements IWebSocketServer.

◆ sendToOne()

void WebSocketServer::sendToOne ( QWebSocket *  pClient,
const nlohmann::json &  jsonMessage 
)
overridevirtual

Implements IWebSocketServer.

◆ setWsjcppUserSession()

void WebSocketServer::setWsjcppUserSession ( QWebSocket *  pClient,
WsjcppUserSession pWsjcppUserSession 
)
overridevirtual

Implements IWebSocketServer.

◆ sig_sendToAll

void WebSocketServer::sig_sendToAll ( QString  jsonMessage)
signal

◆ signal_sendToOne

void WebSocketServer::signal_sendToOne ( QWebSocket *  pClient,
QString  jsonMessage 
)
signal

◆ slot_sendToAll

void WebSocketServer::slot_sendToAll ( QString  jsonMessage)
privateslot

◆ slot_sendToOne

void WebSocketServer::slot_sendToOne ( QWebSocket *  pClient,
QString  message 
)
privateslot

◆ socketDisconnected

void WebSocketServer::socketDisconnected ( )
privateslot

Member Data Documentation

◆ m_bFailed

bool WebSocketServer::m_bFailed
private

◆ m_clients

QList<QWebSocket *> WebSocketServer::m_clients
private

◆ m_mapUserSession

std::map<QWebSocket *, WsjcppUserSession *> WebSocketServer::m_mapUserSession
private

◆ m_mtxUserSession

std::mutex WebSocketServer::m_mtxUserSession
private

◆ m_pWebSocketServer

QWebSocketServer* WebSocketServer::m_pWebSocketServer
private

◆ m_pWebSocketServerSSL

QWebSocketServer* WebSocketServer::m_pWebSocketServerSSL
private

◆ m_vClients

std::vector<WsjcppSocketClient *> WebSocketServer::m_vClients
private

◆ TAG

std::string WebSocketServer::TAG
private

The documentation for this class was generated from the following files: