CWebsocketProc.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef CWEBSOCKETPROC_H
  2. #define CWEBSOCKETPROC_H
  3. #include <QtCore/QObject>
  4. #include <QtWebSockets/QWebSocket>
  5. #include <QTimer>
  6. #include <QMaskGenerator>
  7. class CWebsocketProc : public QObject
  8. {
  9. Q_OBJECT
  10. public:
  11. CWebsocketProc();
  12. ~CWebsocketProc();
  13. void setUrl(QString sUrl, QString sToken, QString sKey);
  14. void open();
  15. void open(QString sUrl, QString sToken, QString sKey);
  16. void close();
  17. qint64 sendText(QString sText);
  18. bool isConnected();
  19. signals:
  20. void connected();
  21. void clientOffLine();
  22. void networkWeak();
  23. void websocketError(QString sErrorStr);
  24. void mobileStatus(__int64 nExamRecordDataId, int nOrder, QString sScanStatus);
  25. void fileAnswer(__int64 nExamRecordDataId, int nOrder, QString sFileType, QString sFileUrl);
  26. private Q_SLOTS:
  27. void onDisconnected();
  28. void onConnected();
  29. void onTextReceived(QString msg);
  30. void reconnect();
  31. void onHeartBreatTimeout();
  32. private:
  33. QWebSocket *m_pWebsocket;
  34. QTimer *m_pTime;
  35. int m_nTimeOutLimit;
  36. int m_nTimeOutSecord;
  37. int m_nTimeOutTimes;
  38. QTimer *m_pHeartBeat;
  39. QString m_sUrl;
  40. QString m_sToken;
  41. QString m_sKey;
  42. bool m_bConnected;
  43. bool m_isExitClosed;
  44. __int64 m_lastRecvTime = 0;
  45. };
  46. extern std::shared_ptr<CWebsocketProc> g_websocketPtr;
  47. #endif // CWEBSOCKETPROC_H