Exemplo n.º 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);
        }
Exemplo n.º 2
0
        private void SendActiveTest(IChannelHandlerContext context)
        {
            IMessage message = new CmppActiveTest();

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

            CmppTools.SendAsync(context, connect);
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
        internal static SmsPacket GroupPacket(IMessage message, uint sequenceId)
        {
            var smsPacket = new SmsPacket
            {
                Head = new CmppHead
                {
                    SequenceId = sequenceId,
                    CommandId  = message.GetCommandId()
                },
                Message = message
            };

            return(smsPacket);
        }
Exemplo n.º 5
0
        internal static async Task SendAsync(IChannel channel, SmsPacket packet)
        {
            if (!channel.Active)
            {
                throw new Exception($"channel未激活:{channel.ToString()}, data:{packet}");
            }

            //等待水位下降
            while (!channel.IsWritable)
            {
                await Task.Delay(5);
            }

            await channel.WriteAndFlushAsync(packet);
        }
Exemplo n.º 6
0
 internal static Task SendAsync(IChannelHandlerContext context, SmsPacket packet)
 {
     return(SendAsync(context.Channel, packet));
 }