diff options
Diffstat (limited to 'src/webchannel/qwebchannel.js')
-rw-r--r-- | src/webchannel/qwebchannel.js | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/webchannel/qwebchannel.js b/src/webchannel/qwebchannel.js index 33f4cf5..9529c0b 100644 --- a/src/webchannel/qwebchannel.js +++ b/src/webchannel/qwebchannel.js @@ -57,13 +57,6 @@ var QWebChannelMessageTypes = { var QWebChannel = function(baseUrlOrSocket, initCallback, rawChannel) { var channel = this; - // support multiple channels listening to the same socket - // the responses to channel.exec must be distinguishable - // see: http://stackoverflow.com/a/2117523/35250 - this.id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); - return v.toString(16); - }); this.send = function(data) { if (typeof(data) !== "string") { @@ -82,10 +75,8 @@ var QWebChannel = function(baseUrlOrSocket, initCallback, rawChannel) jsonData.data = {}; } if (jsonData.response) { - if (jsonData.id[0] === channel.id) { - channel.execCallbacks[jsonData.id[1]](jsonData.data); - delete channel.execCallbacks[jsonData.id]; - } + channel.execCallbacks[jsonData.id](jsonData.data); + delete channel.execCallbacks[jsonData.id]; } else if (channel.subscriptions[jsonData.id]) { channel.subscriptions[jsonData.id].forEach(function(callback) { (callback)(jsonData.data); } @@ -153,7 +144,7 @@ var QWebChannel = function(baseUrlOrSocket, initCallback, rawChannel) } var id = channel.execId++; channel.execCallbacks[id] = callback; - channel.send({"id": [channel.id, id], "data": data}); + channel.send({"id": id, "data": data}); }; this.objectMap = {}; |