public async Task <ushort> UserLoggedIn(string userID) { var channel = GrpcChannel.ForAddress(config.UserServerAddress); var client = new UserService.Protos.UserManagement.UserManagementClient(channel); var res = await client.GetLoggedInUserAsync(new UserService.Protos.UserInfo { UserID = userID }); if (string.IsNullOrEmpty(res.CharID)) { System.Console.WriteLine("Failed to get logged in character from user server.."); return(0); } var response = await communicator.SendMessageWithReply <ServerCharData, ServerAuthReply>( new ServerCharData { charID = res.CharID, jsonData = res.CharData }, (ushort)MasterServerReplyTags.CharacterLoggedIn); return(response.sessToken); }
private void HandleClientMessage(object sender, MessageReceivedEventArgs e) { switch ((MasterServerNoReplyTags)e.Tag) { case MasterServerNoReplyTags.SaveCharacterData: { using (var message = e.GetMessage()) { using (var reader = message.GetReader()) { var mess = reader.ReadSerializable <ServerCharData>(); var channel = GrpcChannel.ForAddress(config.UserServerAddress); var client = new UserService.Protos.UserManagement.UserManagementClient(channel); var charInfo = new UserService.Protos.CharacterInfo { CharID = mess.charID, CharData = mess.jsonData }; client.SaveUserDataAsync(charInfo); } } break; } } }