return Task instead of void for OnOpen, OnMessageReceived, OnClose