WebSocket wrappers for Node and the browser