title: onmessage event in websocket client is not getting fired
body: <p>I am using node.js to implement websocket server and client. The handshake between them looks like this.</p>
  
  <p>Request URL: ws://localhost:8015/</p>
  
  <p>Request Method: GET</p>
  
  <p>Status Code: 101 Switching Protocols</p>
  
  <p><strong>Request Headers</strong></p>
  
  <pre><code>Cache-Control: no-cache
  Connection: Upgrade
  Cookie: SQLiteManager_currentLangue=2
  Host: localhost:8015
  Origin: http:/localhost:8080
  Pragma: no-cache
  Sec-WebSocket-Extensions: x-webkit-deflate-frame
  Sec-WebSocket-Key: A/knWtXFtTa5V6po8XOfjg==
  Sec-WebSocket-Protocol: echo-protocol
  Sec-WebSocket-Version: 13
  Upgrade: websocket
  User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
  </code></pre>
  
  <p><strong>Response Headers</strong></p>
  
  <pre><code>Connection: Upgrade
  Origin: http:/localhost:8080
  Sec-WebSocket-Accept: 5OUv+g5mBPxVDug4etJfGX4lxIo=
  Sec-WebSocket-Protocol: echo-protocol
  Upgrade: websocket
  </code></pre>
  
  <p>The server is getting the message sent from client (I am logging the message on console), however onmessage event in client is not getting fired when server sends the message. The other thing confusing me is as soon as connection is opened, onmessage event in clients gets fired only once. </p>
  
  <p>Please help...I am trying to echo the message on the server back to client.</p>
  
  <p>EDIT: </p>
  
  <p>This is how I am handling events in websocket client...</p>
  
  <pre><code>html5WebSocketClient.connect = function(){
       if(window.WebSocket != undefined){
           if(connection.readyState == undefined || connection.readyState &gt; 1)
               connection = new WebSocket('ws://localhost:8015/','echo-protocol');
       }
       if (window.MozWebSocket) {
            window.WebSocket = window.MozWebSocket;
       }
  
   connection.onopen = html5WebSocketClient.onOpen(event);
   connection.onmessage = html5WebSocketClient.onMessage(event);
   connection.onclose = html5WebSocketClient.onClose(event); 
   connection.onerror = html5WebSocketClient.onError(event);
  </code></pre>
  
  <p>};</p>
  
  <pre><code>html5WebSocketClient.onOpen = function(event)
  {
      $('#some_label').text("Connected");
  };
  
  html5WebSocketClient.onClose = function(event)
  {
      $('#some_label').text("Disconnected");
  };
  
  html5WebSocketClient.onError = function(event)
  {
      $('#some_label').text("Error");
  };
  
  //This is only getting fired when connection opens
  html5WebSocketClient.onMessage = function(message)
  {
      if(message.data != undefined)
          {
          alert($.parseJSON(message.data));
      }
  };
  
  //Server is getting this message
  html5WebSocketClient.sendMessage = function()
  {
     var message = {"name": value, "name": value};
     connection.send(JSON.stringify(message));
  };
  </code></pre>
  
  <p>And here's how I had implemented server..</p>
  
  <pre><code>var http = require('http');
  var WebSocketServer = require('websocket').server;
  
  var server = http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello Node.js From HTML5\n');
  }).listen(8015, "127.0.0.1");
  
  wsServer = new WebSocketServer({
      httpServer: server,
      autoAcceptConnections: false
  });
  
  wsServer.on('request', function(request) {
  
      var connection = request.accept('echo-protocol', request.origin);
      console.log((new Date()) + ' Connection accepted.');
      connection.on('message', function(message) {
          if (message.type === 'utf8') {
              console.log('Received Message: ' + message.utf8Data);
              connection.send(message.utf8Data); //Client is not getting this message..?
          }
      });
      connection.on('close', function(reasonCode, description) {
          console.log((new Date()) + ' Peer ' + connection.remoteAddress + ' disconnected.');
      });
  });
  </code></pre>