summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/standalone/websockettransport.cpp24
-rw-r--r--examples/standalone/websockettransport.h5
2 files changed, 26 insertions, 3 deletions
diff --git a/examples/standalone/websockettransport.cpp b/examples/standalone/websockettransport.cpp
index 5df9f85..f1ecee2 100644
--- a/examples/standalone/websockettransport.cpp
+++ b/examples/standalone/websockettransport.cpp
@@ -41,6 +41,10 @@
#include "websockettransport.h"
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <QDebug>
+
#include <QtWebSockets/QWebSocket>
/*!
@@ -66,9 +70,25 @@ WebSocketTransport::~WebSocketTransport()
}
-void WebSocketTransport::sendTextMessage(const QString &message)
+void WebSocketTransport::sendMessage(const QJsonObject &message)
+{
+ QJsonDocument doc(message);
+ m_socket->sendTextMessage(QString::fromUtf8(doc.toJson(QJsonDocument::Compact)));
+}
+
+void WebSocketTransport::textMessageReceived(const QString &messageData)
{
- m_socket->sendTextMessage(message);
+ QJsonParseError error;
+ QJsonDocument message = QJsonDocument::fromJson(messageData.toUtf8(), &error);
+ if (error.error) {
+ qWarning() << "Failed to parse text message as JSON object:" << messageData
+ << "Error is:" << error.errorString();
+ return;
+ } else if (!message.isObject()) {
+ qWarning() << "Received JSON message that is not an object: " << messageData;
+ return;
+ }
+ emit messageReceived(message.object(), this);
}
QT_END_NAMESPACE
diff --git a/examples/standalone/websockettransport.h b/examples/standalone/websockettransport.h
index 5fab8f6..828ac00 100644
--- a/examples/standalone/websockettransport.h
+++ b/examples/standalone/websockettransport.h
@@ -54,7 +54,10 @@ public:
explicit WebSocketTransport(QWebSocket *socket);
virtual ~WebSocketTransport();
- void sendTextMessage(const QString &message) Q_DECL_OVERRIDE;
+ void sendMessage(const QJsonObject &message) Q_DECL_OVERRIDE;
+
+private Q_SLOTS:
+ void textMessageReceived(const QString &message);
private:
QWebSocket *m_socket;