Web Socket Protocol Draft
==========================

Requirements:
  - fast when necessary (not even msgpack overhead)
    - sending live data updates
  - easy otherwise, based on msgpack
    - sending existing measured data
    - 


Message Format
--------------

- 1byte "opcode"  (if lower than threshold, probably 8, pure binary msg, otherwise msgpack)
- msgpack data, or custom binary data






```js

class WebsocketConnection
{
  sendMessage(opcode, optionalData); // optional data is packed via msgpck
  registerMessageReceive(func, singleShot);
  
  request(opcode, data, onReplyFunc); // with futures, async
      // register a single shot receive that calls the "onReplyFunc", or promise
  
};

```


```cpp

class WebsocketInterface 
{
public:
  virtual bool onMessageReceived(websockets::WebsocketsClient &client)
  {

  }

protected:
  WebsocketServer * server_;
}

class SessionWebsocketInterface
{
public:

}


class WebsocketServer
{
  void sendToAll(char * data, size_t size);

  void registerInterface(WebsocketInterface *);
};

```

can this be done with static polymorphism as well? does std::tuple and std::apply work?! -> test