publish to websockets should be async