Skip to content
Snippets Groups Projects
websocketserver.h 771 B
Newer Older
akiraohgaki's avatar
akiraohgaki committed
#pragma once

#include <QObject>
akiraohgaki's avatar
akiraohgaki committed
#include <QUrl>
akiraohgaki's avatar
akiraohgaki committed

class QWebSocketServer;
akiraohgaki's avatar
akiraohgaki committed
class QWebSocket;
akiraohgaki's avatar
akiraohgaki committed

class WebSocketServer : public QObject
{
    Q_OBJECT

public:
    explicit WebSocketServer(const QString &serverName, quint16 serverPort = 0, QObject *parent = 0);
    ~WebSocketServer();

akiraohgaki's avatar
akiraohgaki committed
signals:
    void started();
    void stopped();

akiraohgaki's avatar
akiraohgaki committed
public slots:
    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 wsBinaryMessageReceived(const QByteArray &message);
    void wsTextMessageReceived(const QString &message);
    void wsDisconnected();

akiraohgaki's avatar
akiraohgaki committed
private:
    QString serverName_;
    quint16 serverPort_;
akiraohgaki's avatar
akiraohgaki committed
    QWebSocketServer *wsServer_;
    QList<QWebSocket *> wsClients_;