diff options
author | Milian Wolff <milian.wolff@kdab.com> | 2014-02-05 17:44:03 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-21 15:59:25 +0100 |
commit | 48e814442e6e8507aacd16362b44d5754c059228 (patch) | |
tree | 592f3916bf2e5dc18d57a62c3baf1ba0ae2bbf09 /src/webchannel/qmetaobjectpublisher_p.h | |
parent | e3e4d6a18d63537459f0e616360e53e816927f76 (diff) | |
download | qtwebchannel-48e814442e6e8507aacd16362b44d5754c059228.tar.gz |
Send response data only to target client.
Before, the response was sent to all clients in a broad-cast and had
to be filtered on the client-side. This required additional client
identification data to be added to all requests and responses.
Now, we keep track of the transport and transport-internal client and
only send the response to that client. This is very benefitial for
multi-client setups but also reduces traffic for single-client setups
and thus their performance.
Change-Id: Ia1ef5e031b0058222083d352a8aa28a7d566a6ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/webchannel/qmetaobjectpublisher_p.h')
-rw-r--r-- | src/webchannel/qmetaobjectpublisher_p.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/webchannel/qmetaobjectpublisher_p.h b/src/webchannel/qmetaobjectpublisher_p.h index 3047548..4413df4 100644 --- a/src/webchannel/qmetaobjectpublisher_p.h +++ b/src/webchannel/qmetaobjectpublisher_p.h @@ -81,7 +81,7 @@ public: * * @return true if the request was handled, false otherwise. */ - bool handleRequest(const QJsonObject &message); + QByteArray handleRequest(const QJsonObject &message); /** * Serialize the QMetaObject of @p object and return it in JSON form. @@ -124,10 +124,10 @@ public: /** * Invoke the method of index @p methodIndex on @p object with the arguments @p args. * - * The return value of the method invocation is then transmitted to the calling client - * via a webchannel response to the message identified by @p id. + * The return value of the method invocation is then serialized and a response message + * is returned. */ - bool invokeMethod(QObject *const object, const int methodIndex, const QJsonArray &args, const QJsonValue &id); + QByteArray invokeMethod(QObject *const object, const int methodIndex, const QJsonArray &args, const QJsonValue &id); /** * Callback of the signalHandler which forwards the signal invocation to the webchannel clients. @@ -164,7 +164,7 @@ public: /** * Parse the message as JSON and if it succeeds, call handleRequest with the obtained JSON object. */ - void handleMessage(const QString &message) Q_DECL_OVERRIDE; + void handleMessage(const QString &message, QWebChannelTransportInterface* transport, int clientId) Q_DECL_OVERRIDE; signals: void blockUpdatesChanged(bool block); |