<!DOCTYPE html>
<meta charset="utf-8" />
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">

  var writeToScreen = function(message) {
    var div = document.createElement('div');
    div.innerHTML = message;
    document.getElementById('output').appendChild(div);
  };
  window.onload = function() {
    var url = 'ws://' + window.location.host + '/foo';
    websocket = new WebSocket(url);
    websocket.onopen = function(ev) {
      writeToScreen('CONNECTED');
      var message = 'Не всё подчиняется разуму. Но всё подчиняется упорству. ';
      writeToScreen('SENT: ' + message);
      websocket.send(message);
    };
    websocket.onclose = function(ev) {
      writeToScreen('DISCONNECTED');
    };
    websocket.onmessage = function(ev) {
      writeToScreen('<span style="color: blue;">RESPONSE: ' + ev.data +
                    ' </span>');
      websocket.send('exit');
    };
    websocket.onerror = function(ev) {
      writeToScreen('<span style="color: red; ">ERROR: </span> ' + ev.data);
    };
  };
</script>
<style> div {font: small Verdana; } </style>
<h2>Mongoose WebSocket Test</h2>

  <div style="width: 400px; color: #aaa; padding: 1em; ">
  This page code creates websocket to the URI "/foo",
  sends a message to it, waits for the reply, then sends an "exit" message.
  Server must echo all messages back, and terminate the conversation after
  receiving the "exit" message.
  </div>

<div id="output"></div>
</html>