Advertisement
Guest User

Untitled

a guest
Feb 14th, 2024
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #ifndef WEBSOCKETTRANSPORT_H
  2. #define WEBSOCKETTRANSPORT_H
  3.  
  4. #include <QWebChannelAbstractTransport>
  5. #include <QJsonDocument>
  6. #include <QJsonObject>
  7. #include <QDebug>
  8.  
  9. class WebSocketTransport : public QWebChannelAbstractTransport
  10. {
  11. Q_OBJECT
  12.  
  13. public:
  14. Q_INVOKABLE void sendMessage(const QJsonObject &message) override
  15. {
  16. QJsonDocument doc(message);
  17. emit messageChanged(QString::fromUtf8(doc.toJson(QJsonDocument::Compact)));
  18. }
  19.  
  20. Q_INVOKABLE void textMessageReceive(const QString &messageData)
  21. {
  22. QJsonParseError error;
  23. QJsonDocument message = QJsonDocument::fromJson(messageData.toUtf8(), &error);
  24. if (error.error)
  25. {
  26. qWarning() << "Failed to parse text message as JSON object:" << messageData
  27. << "Error is:" << error.errorString();
  28. return;
  29. } else if (!message.isObject())
  30. {
  31. qWarning() << "Received JSON message that is not an object: " << messageData;
  32. return;
  33. }
  34. emit messageReceived(message.object(), this);
  35. }
  36.  
  37. signals:
  38. void messageChanged(const QString & message);
  39. };
  40.  
  41. #endif // WEBSOCKETTRANSPORT_H
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement