wssserver.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef WSSSERVER_H
  2. #define WSSSERVER_H
  3. #include <QObject>
  4. #include <QList>
  5. #include <QByteArray>
  6. #include <QDateTime>
  7. #include <QString>
  8. #include <QTimer>
  9. #include <QFile>
  10. #include <QtNetwork/QSslError>
  11. #include <QJsonDocument>
  12. #include <QJsonObject>
  13. #include <QJsonValue>
  14. #include <QJsonParseError>
  15. #include <QUuid>
  16. QT_FORWARD_DECLARE_CLASS(QWebSocketServer)
  17. QT_FORWARD_DECLARE_CLASS(QWebSocket)
  18. class WssClient {
  19. public:
  20. explicit WssClient(QWebSocket *so=nullptr){
  21. DeviceId = "";
  22. m_client = so;
  23. LoginFlag = false;
  24. Dir=0;
  25. NeedComm=1;
  26. NeedSQL=0;
  27. NeedErr=0;
  28. }
  29. bool LoginFlag ;
  30. QString DeviceId;
  31. int Dir;
  32. int NeedComm;
  33. int NeedSQL;
  34. int NeedErr;
  35. QWebSocket *m_client;
  36. };
  37. class WssServer : public QObject
  38. {
  39. Q_OBJECT
  40. public:
  41. explicit WssServer(QObject *parent = nullptr);
  42. ~WssServer();
  43. void start();
  44. void subReport(QString DeviceCode, int Dir, bool isSql, bool isErr, QString data);
  45. QString getPassword(QString psd);
  46. signals:
  47. void closed();
  48. void resetRequest(QString deviceID, int commandType, int parameterType, int pseq);
  49. void requestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
  50. void requestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
  51. void CommData(QString deviceID, int dir, QString data);
  52. public slots:
  53. void onNewConnection();
  54. void processTextMessage(QString message);
  55. void socketDisconnected();
  56. void timeout();
  57. void onSslErrors(const QList<QSslError> &errors);
  58. private:
  59. QWebSocketServer *m_pWebSocketServer;
  60. QList<WssClient *> clientList;
  61. QTimer *timer;
  62. int count;
  63. int pseq;
  64. quint16 WssPort;
  65. };
  66. #endif // WSSSERVER_H