// async
 public static Task CreateJoinRoomAsync(this ILoginClient client, string roomId)
 {
     return(client.CreateJoinRoomAsync(roomId, CancellationToken.None));
 }
 // nonasync
 public static void CreateJoinRoom(this ILoginClient client, string roomId)
 {
     client.CreateJoinRoomAsync(roomId).WaitEx();
 }
 // nonasync ct
 public static void CreateJoinRoom(this ILoginClient client, string roomId, CancellationToken ct)
 {
     client.CreateJoinRoomAsync(roomId, ct).WaitEx();
 }