#ifndef _H_SERVER_H_ #define _H_SERVER_H_ #include #include #include #include QT_FORWARD_DECLARE_CLASS(QWebSocketServer) QT_FORWARD_DECLARE_CLASS(QWebSocket) /* webSocketServer 只负责管理client的连接和收发数据 */ typedef std::function RecvFunc; class WebServer : public QObject { Q_OBJECT public: WebServer(QObject *parent = nullptr); ~WebServer(); bool openServer(int port, RecvFunc func); bool closeServer(); void sendData(const QByteArray data); int getCount() const; signals: void sgConnected(bool bFlag); //连接状态 bflag true 打开成功,false 打开失败 void sgClientInfo(QString strIP, int port, bool bflag); private: Q_SLOT void onNewConnection(); Q_SLOT void processTextMessage(QString message); Q_SLOT void processBinaryMessage(QByteArray message); Q_SLOT void socketDisconnected(); Q_SLOT void closed(); private: QWebSocketServer *m_pWebSocketServer{ nullptr }; QList m_clients; RecvFunc m_func;//数据接收回调函数 }; #endif