Пример #1
0
        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);
        }
Пример #2
0
 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;
     }
     }
 }