예제 #1
0
        public void ProcessLDCCommandQuene()
        {
            while (true)
            {
                if (ldcmdQueue.Count > 0)
                {
                    Msg.LDCBaseMsg msg = null;
                    if (ldcmdQueue.TryDequeue(out msg))
                    {
                        try
                        {
                            if (messageHandler.ContainsKey(msg.msgType))
                            {
                                messageHandler[msg.msgType](msg);
                            }
                            else
                            {
                                Console.WriteLine($"MessageHandler Not Found Type {msg.msgType.Name}");
                            }
                        }
                        catch (Exception e)
                        {
                            logger.Error($"exception={e.ToString()}");
                            break;
                        }
                    }
                    else
                    {
                        logger.Warn($"lbcmdQueue Dequeue fail QueueCount={ldcmdQueue.Count}");
                    }
                }

                Thread.Sleep(1);
            }
        }
예제 #2
0
        public void LDCMsg_GetProfile(Msg.LDCBaseMsg msg)
        {
            var ldcData = msg as Msg.LDCMsg_GetProfile;

            UriData uriData;

            uriData             = GetUriData(ApiUriType.GetProfile);
            uriData.accessToken = ldcData.accessToken;

            var result = RequestResult(uriData);

            if (!string.IsNullOrEmpty(result))
            {
                var respones = JsonConvert.DeserializeObject <Respones_GetProfile>(result);

                var intlMsg = new InternalMsg.IntlMsg_GetProfile()
                {
                    guid = ldcData.guid,

                    userId        = respones.userId,
                    displayName   = respones.displayName,
                    pictureUrl    = respones.pictureUrl,
                    statusMessage = respones.statusMessage
                };

                NetServer.InternalHandleMessageByGuid(intlMsg);
            }
            else
            {
                logger.Warn($"HttpRequest fail Uid={msg.guid}");
            }
        }
예제 #3
0
        public void LDCMsg_VerifyAccessToken(Msg.LDCBaseMsg msg)
        {
            var ldcData = msg as Msg.LDCMsg_VerifyAccessToken;

            UriData uriData;

            uriData             = GetUriData(ApiUriType.VerifyAccesToken);
            uriData.accessToken = ldcData.accessToken;

            var result = RequestResult(uriData);

            if (!string.IsNullOrEmpty(result))
            {
                var respones = JsonConvert.DeserializeObject <Respones_VerifyAccessToken>(result);

                var intlMsg = new InternalMsg.IntlMsg_VerifyAccessToken()
                {
                    guid = ldcData.guid,
                };

                if (string.IsNullOrEmpty(respones.error))
                {
                    intlMsg.result     = true;
                    intlMsg.scope      = respones.scope;
                    intlMsg.client_id  = respones.error;
                    intlMsg.expires_in = respones.expires_in;
                }
                else
                {
                    intlMsg.result      = false;
                    intlMsg.error       = respones.error;
                    intlMsg.description = respones.error_description;
                }

                NetServer.InternalHandleMessageByGuid(intlMsg);
            }
            else
            {
                logger.Warn($"HttpRequest fail Uid={msg.guid}");
            }
        }
예제 #4
0
 public void AddLDCCmd(Msg.LDCBaseMsg data)
 {
     ldcmdQueue.Enqueue(data);
 }