Asynchronous messaging via websockets