A lightweight socket.io-like websocket abstraction for the server and the client