summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2014-07-16 14:33:03 +0200
committerMilian Wolff <milian.wolff@kdab.com>2014-07-30 01:31:54 +0200
commit5051411b92b4aca4ed5ec462e7b0e52af4d3951e (patch)
tree9f9ed9c1940db04ccf1a076b7e3471e7d1f73737 /examples
parent94912cf26ba70a2cadd23f1c931395be64c11eac (diff)
downloadqtwebchannel-5051411b92b4aca4ed5ec462e7b0e52af4d3951e.tar.gz
Refactor JavaScript QWebChannel to take an external transport object.
This assimilates the JavaScript side to the QML/C++ side. We get rid of the automagic WebSocket code. Instead, users pass in the WebSocket from the outside, if they want to use that for communication. In the QtWebKit/QtWebEngine cases, we will pass in our custom IPC objects. Change-Id: I15e15b5130f99dc8b39dfbfa8cd3d8b2d34dbbc0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Lutz Schönemann <lutz.schoenemann@basyskom.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/standalone/index.html57
1 files changed, 37 insertions, 20 deletions
diff --git a/examples/standalone/index.html b/examples/standalone/index.html
index e1a74fb..3cce3ec 100644
--- a/examples/standalone/index.html
+++ b/examples/standalone/index.html
@@ -10,30 +10,47 @@
var output = document.getElementById("output");
output.innerHTML = output.innerHTML + message + "\n";
}
- var baseUrl = (/[?&]webChannelBaseUrl=([A-Za-z0-9\-:/\.]+)/.exec(location.search)[1]);
- new QWebChannel(baseUrl, function(channel) {
- // make dialog object accessible globally
- window.dialog = channel.objects.dialog;
+ window.onload = function() {
+ var baseUrl = (/[?&]webChannelBaseUrl=([A-Za-z0-9\-:/\.]+)/.exec(location.search)[1]);
+ output("Connecting to WebSocket server at " + baseUrl + ".");
+ var socket = new WebSocket(baseUrl);
- document.getElementById("send").onclick = function() {
- var input = document.getElementById("input");
- var text = input.value;
- if (!text) {
- return;
- }
+ socket.onclose = function()
+ {
+ console.error("web channel closed");
+ };
+ socket.onerror = function(error)
+ {
+ console.error("web channel error: " + error);
+ };
+ socket.onopen = function()
+ {
+ output("WebSocket connected, setting up QWebChannel.");
+ new QWebChannel(socket, function(channel) {
+ // make dialog object accessible globally
+ window.dialog = channel.objects.dialog;
- output("Sent message: " + text);
- input.value = "";
- dialog.receiveText(text);
- }
+ document.getElementById("send").onclick = function() {
+ var input = document.getElementById("input");
+ var text = input.value;
+ if (!text) {
+ return;
+ }
+
+ output("Sent message: " + text);
+ input.value = "";
+ dialog.receiveText(text);
+ }
- dialog.sendText.connect(function(message) {
- output("Received message: " + message);
- });
+ dialog.sendText.connect(function(message) {
+ output("Received message: " + message);
+ });
- dialog.receiveText("Client connected, ready to send/receive messages!");
- output("Connected to WebChannel, ready to send/receive messages!");
- });
+ dialog.receiveText("Client connected, ready to send/receive messages!");
+ output("Connected to WebChannel, ready to send/receive messages!");
+ });
+ }
+ }
//END SETUP
</script>
<style type="text/css">