Keep alive client layer on top of ws WebSocket to keep connections open and/or reconnect failed connections.