| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <html>
- <head><title>WebSockets Test</title></head>
- <body>
- Host: <input id='host' style='width:100'>
- Port: <input id='port' style='width:50'>
- Encrypt: <input id='encrypt' type='checkbox'>
- <input id='connectButton' type='button' value='Start' style='width:100px'
- onclick="connect();">
- <br>
- Messages:<br>
- <textarea id="messages" style="font-size: 9;" cols=80 rows=25></textarea>
- </body>
- <!-- Uncomment to activate firebug lite -->
- <!--
- <script type='text/javascript'
- src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
- -->
- <script src="include/base64.js"></script>
- <script src="include/util.js"></script>
- <script src="include/webutil.js"></script>
- <script>
- var host = null, port = null;
- var ws = null;
- var VNC_native_ws = true;
- function message(str) {
- console.log(str);
- cell = $('messages');
- cell.innerHTML += str + "\n";
- cell.scrollTop = cell.scrollHeight;
- }
- function print_response(str) {
- message("str.length: " + str.length);
- for (i=0; i < str.length; i++) {
- message(i + ": " + (str.charCodeAt(i) % 256));
- }
- }
- function send() {
- var str = "";
- str = str + String.fromCharCode(0x81);
- str = str + String.fromCharCode(0xff);
- for (var i=0; i<256; i+=4) {
- str = str + String.fromCharCode(i);
- }
- str = str + String.fromCharCode(0);
- str = str + String.fromCharCode(0x40);
- str = str + String.fromCharCode(0x41);
- str = str + String.fromCharCode(0xff);
- str = str + String.fromCharCode(0x81);
- ws.send(str);
- }
- function init_ws() {
- console.log(">> init_ws");
- var scheme = "ws://";
- if ($('encrypt').checked) {
- scheme = "wss://";
- }
- var uri = scheme + host + ":" + port;
- console.log("connecting to " + uri);
- ws = new WebSocket(uri);
- ws.onmessage = function(e) {
- console.log(">> WebSockets.onmessage");
- print_response(e.data);
- console.log("<< WebSockets.onmessage");
- };
- ws.onopen = function(e) {
- console.log(">> WebSockets.onopen");
- send();
- console.log("<< WebSockets.onopen");
- };
- ws.onclose = function(e) {
- console.log(">> WebSockets.onclose");
- console.log("<< WebSockets.onclose");
- };
- ws.onerror = function(e) {
- console.log(">> WebSockets.onerror");
- console.log(" " + e);
- console.log("<< WebSockets.onerror");
- };
- console.log("<< init_ws");
- }
- function connect() {
- console.log(">> connect");
- host = $('host').value;
- port = $('port').value;
- if ((!host) || (!port)) {
- console.log("must set host and port");
- return;
- }
- if (ws) {
- ws.close();
- }
- init_ws();
- $('connectButton').value = "Stop";
- $('connectButton').onclick = disconnect;
- console.log("<< connect");
- }
- function disconnect() {
- console.log(">> disconnect");
- if (ws) {
- ws.close();
- }
- $('connectButton').value = "Start";
- $('connectButton').onclick = connect;
- console.log("<< disconnect");
- }
- /* If no builtin websockets then load web_socket.js */
- if (! window.WebSocket) {
- console.log("Loading web-socket-js flash bridge");
- var extra = "<script src='include/web-socket-js/swfobject.js'><\/script>";
- extra += "<script src='include/web-socket-js/FABridge.js'><\/script>";
- extra += "<script src='include/web-socket-js/web_socket.js'><\/script>";
- document.write(extra);
- VNC_native_ws = false;
- }
- window.onload = function() {
- console.log("onload");
- if (! VNC_native_ws) {
- WebSocket.__swfLocation = "include/web-socket-js/WebSocketMain.swf";
- WebSocket.__initialize();
- }
- var url = document.location.href;
- $('host').value = (url.match(/host=([^&#]*)/) || ['',''])[1];
- $('port').value = (url.match(/port=([^&#]*)/) || ['',''])[1];
- }
- </script>
- </html>
|