Skip to content
Snippets Groups Projects
websocketserver.h 1.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • akiraohgaki's avatar
    akiraohgaki committed
    #pragma once
    
    #include <QObject>
    
    akiraohgaki's avatar
    akiraohgaki committed
    #include <QUrl>
    
    akiraohgaki's avatar
    akiraohgaki committed
    //#include <QJsonObject>
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    class QWebSocketServer;
    
    akiraohgaki's avatar
    akiraohgaki committed
    class QWebSocket;
    
    akiraohgaki's avatar
    akiraohgaki committed
    class ConfigHandler;
    class SystemHandler;
    class OcsHandler;
    class ItemHandler;
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    class WebSocketServer : public QObject
    {
        Q_OBJECT
    
    public:
    
    akiraohgaki's avatar
    akiraohgaki committed
        explicit WebSocketServer(ConfigHandler *configHandler, const QString &serverName = "WebSocketServer", quint16 serverPort = 0, QObject *parent = 0);
    
    akiraohgaki's avatar
    akiraohgaki committed
        ~WebSocketServer();
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    signals:
        void started();
        void stopped();
    
    public slots:
    
    akiraohgaki's avatar
    akiraohgaki committed
        bool start();
        void stop();
    
    akiraohgaki's avatar
    akiraohgaki committed
        bool isError();
        QString errorString();
        QUrl serverUrl();
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    private slots:
        void wsNewConnection();
        void wsDisconnected();
    
    akiraohgaki's avatar
    akiraohgaki committed
        void wsTextMessageReceived(const QString &message);
        void wsBinaryMessageReceived(const QByteArray &message);
    
    akiraohgaki's avatar
    akiraohgaki committed
    
    
    akiraohgaki's avatar
    akiraohgaki committed
    private:
    
    akiraohgaki's avatar
    akiraohgaki committed
        void callFunction(const QJsonObject &request, QWebSocket *wsClient);
    
    
    akiraohgaki's avatar
    akiraohgaki committed
        QString serverName_;
        quint16 serverPort_;
    
    akiraohgaki's avatar
    akiraohgaki committed
        QWebSocketServer *wsServer_;
        QList<QWebSocket *> wsClients_;
    
    akiraohgaki's avatar
    akiraohgaki committed
    
        ConfigHandler *configHandler_;
        SystemHandler *systemHandler_;
        OcsHandler *ocsHandler_;
        ItemHandler *itemHandler_;