Пример #1
0
        protected override void ChannelRead0(IChannelHandlerContext ctx, CmppMessageReceiveArgs <CmppHead, CmppActiveTest> msg)
        {
            logger.Info($"receive active request: {msg}", ctx.Channel.ToString());
            SmsPacket activeResp = GetActiveRespPacket(msg.Header);

            CmppTools.SendAsync(ctx, activeResp);
        }
Пример #2
0
        protected override void ChannelRead0(IChannelHandlerContext ctx, CmppMessageReceiveArgs <CmppHead, CmppDeliver> msg)
        {
            baseSmsHandler.CmppDeliver(msg);
            var resp = GetConnectRequestPacket(msg.Message.MsgId, msg.Header.SequenceId);

            CmppTools.SendAsync(ctx, resp);
        }
Пример #3
0
        protected override void ChannelRead0(IChannelHandlerContext ctx, CmppMessageReceiveArgs <CmppHead, CmppConnectResp> msg)
        {
            var  connectBody    = msg.Message;
            byte connectSuccess = 0;
            var  channel        = ctx.Channel;

            if (connectBody.Status.Equals(connectSuccess) && connectBody.AuthenticatorISMG != null)
            {
                var authenticatorISMG
                    = CmppTools.CreateAuthenticatorISMG(connectSuccess, authenticatorSource, config.Password);
                if (authenticatorISMG.SequenceEqual(authenticatorISMG))
                {
                    logger.Info($"login success, return:{msg.Message.Status.ToString()}", ctx.Channel.ToString());
                    var session = sessionMap.GetSessionOrDefault(ctx);
                    if (session == null)
                    {
                        ctx.Channel.CloseAsync();
                    }
                    session.Send = true;
                    connectCallBack_OK?.Invoke();
                    return;
                }
            }
            logger.Warn($"login fail, return:{msg.Message.Status.ToString()}", ctx.Channel.ToString());
            ctx.Channel.CloseAsync();
        }
Пример #4
0
        private void SendActiveTest(IChannelHandlerContext context)
        {
            IMessage message = new CmppActiveTest();

            CmppTools.GroupPacket(message);
            SmsPacket connect = CmppTools.GroupPacket(message);

            CmppTools.SendAsync(context, connect);
        }
Пример #5
0
        private SmsPacket GetConnectRequestPacket(ulong msgId, uint seq)
        {
            var      date    = DateTime.Now;
            IMessage message = new CmppDeliverResp()
            {
                MsgId  = msgId,
                Result = 0
            };

            return(CmppTools.GroupPacket(message, seq));
        }
Пример #6
0
        public override void ChannelActive(IChannelHandlerContext context)
        {
            logger.Info($"start login user:{config.UserName}, pwd:{config.Password}");
            this.context = context;
            SmsPacket connect = GetConnectRequestPacket(config.UserName, config.Password);

            CmppTools.SendAsync(context, connect);
            var delay = new TimeSpan(0, 0, disconnectSecond);

            timer.NewTimeout(this, delay);
            base.ChannelActive(context);
        }
Пример #7
0
        private SmsPacket GetConnectRequestPacket(string userName, string password)
        {
            var date = DateTime.Now;

            authenticatorSource = CmppTools.CreateAuthenticatorSource(date, userName, password);
            IMessage message = new CmppConnect()
            {
                TimeStamp           = uint.Parse(string.Format("{0:MMddHHmmss}", date)),
                AuthenticatorSource = authenticatorSource,
                Version             = CmppConstants.Version,
                SourceAddress       = userName,
            };

            return(CmppTools.GroupPacket(message));
        }
Пример #8
0
        private SmsPacket GetActiveRespPacket(CmppHead head)
        {
            IMessage message = new CmppActiveTestResp();

            return(CmppTools.GroupPacket(message, head.SequenceId));
        }