title: Node Http Proxy Web Socket Balance
body: <p>I need to able to balance websocket on application level. Lets say forward websocket request on the basis of message I received, decode it on proxy and then using that data send to another socket server using some logic.</p>
  
  <p>But I am unable to do this. This is the initial code I wrote and trying to do that. This is the server</p>
  
  <pre><code>var http = require('http');
  var httpProxy = require('http-proxy');
  var WebSocket = require('ws');
  
  var WebSocketServer = require('ws').Server;
  var wss = new WebSocketServer({ port: 8080 });
  
  wss.on('connection', function connection(ws) {
      ws.on('message', function incoming(message) {
          console.log('received: %s', message);
      });
      ws.send('something');
  });
  
  var proxy = httpProxy.createServer({target: 'ws://localhost:8080', ws:true});
  
  
  var server = httpProxy.createServer(function(req, res) {
      //SOME LOGIC HERE TO PARSE WS DATA AND SEND TO WS SERVER
      proxy.ws(req, res, { target: 'ws://localhost:8080'});
  }).listen(8014);
  </code></pre>
  
  <p>CLIENT</p>
  
  <pre><code>var http = require('http');
  var httpProxy = require('http-proxy');
  var WebSocket = require('ws');
  
  
  var ws = new WebSocket('ws://localhost:8014/');
  
  ws.on('open', function () {  
      ws.send("CLIENT");
  });
  
  ws.on('message', function (msg) {  
      console.log(msg);
  });
  </code></pre>