adding a cafeinated version of reconnecting_websocket