learn websocket machenism