Hey, I've looked into the internal protocol that is used by QWebChannel and I think the usage of some properties is is a bit inconsistent. In every message the client sends to the server it has to set the following properties (minimum): { data: { type: 6 // an integer specifying the message type (read / write property; call method; ...) } }
As far as I understood that protocol the 'data' property holds the message payload and 'data.type' property holds the type of the message. There are also some more properties but the property that is confusing me the most is 'id'. If client sends a message to call a method it also has to contain that property: { id: "id is of any type (number/string/array/object) and identifies the message itself", data: { type: 6 // additional properties needed for calling a method } } The ID property is used by the server just to send put it as 'id' in the response: { id: "id is of any type (number/string/array/object) and identifies the message itself", response: true, data: { // data returned by method } } Now, if the server sends any message to the client (property update / signal / ...) it uses the 'id' property not to identify the message but to set the message type. Here an example of a message that could be the result of a signal: { id: 1, data: { "object": "myObject", "signal": "mySignal", "args": [ "arguments", "sent", "by", "signal" ] } } That makes processing messages from server more complex because the the client has to handle the 'id' property in different ways regarding if it is a response or not. So is there a reason why you are not using the 'data.type' property in every case to set the message type? Maybe it should be moved from 'data.type' to 'type' then because for method calls it would be bad to change the returned data. Regards, Lutz _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development