github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/themes/wind/static/libs/sockjs-client-1.1.0/tests/html/smoke-latency.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    <input type="text" id="url" size="40">
    17    <br />
    18    <select id="transport">
    19    <option value="">- any - </option>
    20    <option value="websocket">websocket</option>
    21    <option value="xdr-streaming">xdr-streaming</option>
    22    <option value="xhr-streaming">xhr-streaming</option>
    23    <option value="eventsource">eventsource</option>
    24    <option value="iframe-eventsource">iframe-eventsource</option>
    25    <option value="htmlfile">htmlfile</option>
    26    <option value="iframe-htmlfile">iframe-htmlfile</option>
    27    <option value="xdr-polling">xdr-polling</option>
    28    <option value="xhr-polling">xhr-polling</option>
    29    <option value="iframe-xhr-polling">iframe-xhr-polling</option>
    30    <option value="jsonp-polling">jsonp-polling</option>
    31    </select>
    32    <input type="checkbox" id="sameOrigin" checked>Same Origin?
    33    <input type="button" value="Connect" id="connect">
    34    <input type="button" value="Disconnect" id="disconnect" disabled="yes">
    35  </form>
    36  
    37    Latency: <code id="latency"></code><br>
    38    <code id="logs" style="height:200px; overflow:auto; display: block; border: 1px gray solid;">
    39    </code>
    40  
    41  <script>
    42      function log(a) {
    43              if ('console' in window && 'log' in window.console) {
    44                  console.log(a);
    45              }
    46              $('#logs').append($("<code>").text(a));
    47              $('#logs').append($("<br>"));
    48              $('#logs').scrollTop($('#logs').scrollTop()+10000);
    49        }
    50  
    51      var sjs;
    52      function onopen() {
    53              log('connected ' + sjs.transport);
    54              $('#sameOrigin').attr('disabled', true);
    55              send();
    56      };
    57      function onclose(e) {
    58              log('disconnected ' + e.code + ', ' + e.reason);
    59              $('#connect').each(function(_,e){e.disabled='';});
    60              $('#disconnect').attr('disabled', true);
    61              $('#sameOrigin').attr('disabled', false);
    62      };
    63      function send() {
    64          sjs.send(JSON.stringify({t: (new Date()).getTime()}));
    65      };
    66      var i = 0;
    67      function xonmessage(e) {
    68              var msg = JSON.parse(e.data);
    69              var td = (new Date()).getTime() - msg.t;
    70              $('#latency').text(''+i +'  ' + td + ' ms');
    71              i += 1;
    72              send();
    73      };
    74  
    75      $('#connect').click(function() {
    76          $('#connect').attr('disabled', true);
    77          $('#disconnect').each(function(_,e){e.disabled='';});
    78          var transport = $('#transport').val() || undefined;
    79          log('[connecting] ' + transport);
    80          var url;
    81          if ($('#url').val()) {
    82            url = $('#url').val();
    83          } else if ($('#sameOrigin').prop('checked')) {
    84            if (window.location.origin) url = window.location.origin;
    85            else {
    86              url = window.location.protocol + '//' + window.location.hostname +
    87                (window.location.port ? ':' + window.location.port : '');
    88            }
    89            url += '/echo';
    90          } else {
    91            url = clientOptions.url + '/echo';
    92          }
    93          sjs = new SockJS(url, null, { transports: transport });
    94          sjs.onopen = onopen
    95          sjs.onclose = onclose;
    96          sjs.onmessage = xonmessage;
    97      });
    98      $('#disconnect').click(function() {
    99          $('#disconnect').attr('disabled', true);
   100          log('[disconnecting]');
   101          sjs.close();
   102      });
   103  </script>
   104  </body>
   105  </html>