Exemple #1
0
        private void OnRegistVerifyReq(Datagram datagram)
        {
            RegistVerifyReq req = datagram.UnSerialData <RegistVerifyReq>();

            RegistResponse response = new RegistResponse();

            if (EmailRequestCache.TryRemove(req.NextLabel, out EmailRequestPackage value))
            {
                if (InternalTools.VerificateCode(value.Verify, req.Verifies))
                {
                    Guid guid = Guid.NewGuid();
                    if (OperationFinishCache.TryAdd
                        (
                            guid,
                            new KeyValuePair <string, DateTime>(value.Email, DateTime.Now)
                        ))
                    {
                        response.NextLabel = guid;
                    }
                }
            }

            datagram.DataType    = DatagramType.Client;
            datagram.MessageType = LoginMessageType.RegistVerifyRes;
            datagram.Datas       = response.ToByteArray();

            if (!Send(datagram.ToByteArray()))
            {
                Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                Close();
            }
        }
        bool IDataSender.RegistVerifyReq(Guid request_id, RegistVerifyReq req)
        {
            Datagram datagram = new Datagram
            {
                DataType    = DatagramType.Login,
                MessageType = LoginMessageType.RegistVerifyReq,
                RequestID   = request_id,
                Datas       = req.ToByteArray()
            };

            return(Send(datagram));
        }