1 2function get_appropriate_ws_url(extra_url) 3{ 4 var pcol; 5 var u = document.URL; 6 7 /* 8 * We open the websocket encrypted if this page came on an 9 * https:// url itself, otherwise unencrypted 10 */ 11 12 if (u.substring(0, 5) === "https") { 13 pcol = "wss://"; 14 u = u.substr(8); 15 } else { 16 pcol = "ws://"; 17 if (u.substring(0, 4) === "http") 18 u = u.substr(7); 19 } 20 21 u = u.split("/"); 22 23 /* + "/xxx" bit is for IE10 workaround */ 24 25 return pcol + u[0] + "/" + extra_url; 26} 27 28function new_ws(urlpath, protocol) 29{ 30 return new WebSocket(urlpath, protocol); 31} 32 33var ws = new Array(); 34 35function conn(n) 36{ 37 ws[n] = new_ws(get_appropriate_ws_url("/" + (n + 1)), "lws-minimal"); 38 ws[n].n = n; 39 try { 40 ws[n].onopen = function() { 41 document.getElementById("r").disabled = 0; 42 document.getElementById("status").textContent = 43 document.getElementById("status").textContent + " " + 44 "ws open "+ ws[n].extensions; 45 }; 46 47 ws[n].onmessage = function got_packet(msg) { 48 if (typeof msg.data !== "string") { 49 //console.log(msg.data); 50 document.getElementById("r").value = 51 document.getElementById("r").value + 52 ws[n].n + " " + "blob uncompressed length " + 53 msg.data.size + "\n"; 54 } else 55 document.getElementById("r").value = 56 document.getElementById("r").value + msg.data + "\n"; 57 document.getElementById("r").scrollTop = 58 document.getElementById("r").scrollHeight; 59 }; 60 61 ws[n].onclose = function(){ 62 document.getElementById("r").disabled = 1; 63 document.getElementById("status").textContent = "ws closed"; 64 }; 65 } catch(exception) { 66 alert("<p>Error " + exception); 67 } 68} 69 70window.addEventListener("load", function() { 71 72 var n; 73 74 /* 75 * we make 5 individual connections. Because if we don't, by default pmd 76 * will reuse its dictionary to make subsequent tests very short. 77 */ 78 79 for (n = 0; n < 5; n++) 80 conn(n); 81 82 console.log("load"); 83 84}, false); 85 86