github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/public/libs/sockjs-client-1.1.0/tests/html/smoke-reconnect.html (about) 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 5 <meta charset="UTF-8" /> 6 7 <link href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" rel="icon" type="image/x-icon" /> 8 9 <script type="text/javascript" src="lib/sockjs.js"></script> 10 <script type="text/javascript" src="static/jquery.min.js"></script> 11 12 <script type="text/javascript" src="config.js"></script> 13 </head> 14 <body> 15 <form> 16 <select id="transport"> 17 <option value="">- any - </option> 18 <option value="websocket">websocket</option> 19 <option value="xdr-streaming">xdr-streaming</option> 20 <option value="xhr-streaming">xhr-streaming</option> 21 <option value="iframe-eventsource">iframe-eventsource</option> 22 <option value="iframe-htmlfile">iframe-htmlfile</option> 23 <option value="xdr-polling">xdr-polling</option> 24 <option value="xhr-polling">xhr-polling</option> 25 <option value="iframe-xhr-polling">iframe-xhr-polling</option> 26 <option value="jsonp-polling">jsonp-polling</option> 27 </select> 28 <input type="checkbox" id="sameOrigin" checked>Same Origin? 29 <input type="button" value="Start" id="connect"> 30 <input type="button" value="Stop" id="disconnect" disabled="yes"> 31 </form> 32 33 Connected: <code id="out"></code><br> 34 <code id="logs" style="height:200px; overflow:auto; display: block; border: 1px gray solid;"> 35 </code> 36 37 <script> 38 function log(a) { 39 if ('console' in window && 'log' in window.console) { 40 console.log(a); 41 } 42 $('#logs').append($("<code>").text(a)); 43 $('#logs').append($("<br>")); 44 $('#logs').scrollTop($('#logs').scrollTop()+10000); 45 } 46 47 var started = false; 48 var sjs; 49 var i = 0; 50 var transport; 51 var t0; 52 function onopen() { 53 $('#sameOrigin').attr('disabled', true); 54 var td = (new Date()).getTime() - t0; 55 i += 1; 56 $('#out').text(''+i +' ' + td + ' ms'); 57 sjs.close(); 58 }; 59 function onclose(e) { 60 if (started && e.code === 1000) { 61 t0 = (new Date()).getTime(); 62 var url; 63 if ($('#sameOrigin').prop('checked')) { 64 if (window.location.origin) url = window.location.origin; 65 else { 66 url = window.location.protocol + '//' + window.location.hostname + 67 (window.location.port ? ':' + window.location.port : ''); 68 } 69 } else { 70 url = clientOptions.url; 71 } 72 sjs = new SockJS(clientOptions.url + '/echo', null, { transports: transport }); 73 sjs.onopen = onopen 74 sjs.onclose = onclose; 75 } else { 76 log('[stopped] ' + e.code + ', ' + e.reason); 77 $('#connect').each(function(_,e){e.disabled='';}); 78 $('#disconnect').attr('disabled', true); 79 $('#sameOrigin').attr('disabled', false); 80 } 81 }; 82 83 $('#connect').click(function() { 84 started = true; 85 transport = $('#transport').val() || undefined; 86 log('[starting] ' + transport); 87 onclose({code:1000}); 88 $('#connect').attr('disabled', true); 89 $('#disconnect').each(function(_,e){e.disabled='';}); 90 }); 91 $('#disconnect').click(function() { 92 $('#disconnect').attr('disabled', true); 93 log('[stopping...]'); 94 started = false; 95 }); 96 </script> 97 </body> 98 </html>