custom websocket class can always send messages, even when the
connection is not yet opened because then the messages are queued
added reconnect and ping - pong