a websocket library