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>