something like a websocket client