async static Task ExecuteChatUserFlow(this ClientNode node, string roomName)
{
string name = Guid.NewGuid().ToString();
JoinRoomResponse response = await node.SendRequestAsync<JoinRoomResponse>(
new JoinRoom
{
UserName = name,
RoomName = roomName
});
if (response.RetCode == JoinRoomRetCode.NameIsTaken)
{
Console.WriteLine("Name is taken");
return;
}
Console.WriteLine("You are connected, say something or write 'exit' to quit");
bool exit = false;
while (!exit)
{
await Task.Yield(); //client uses single threaded processing, so it's better noto block it with Console.Readline
string text = Console.ReadLine();
if (text == "exit")
{
exit = true;
}
else
{
node.SendOneWay(new Say { Text = text });
}
}
}
}