add reconnecting websocket