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); }
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); }
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(); }
private void SendActiveTest(IChannelHandlerContext context) { IMessage message = new CmppActiveTest(); CmppTools.GroupPacket(message); SmsPacket connect = CmppTools.GroupPacket(message); CmppTools.SendAsync(context, connect); }
private SmsPacket GetConnectRequestPacket(ulong msgId, uint seq) { var date = DateTime.Now; IMessage message = new CmppDeliverResp() { MsgId = msgId, Result = 0 }; return(CmppTools.GroupPacket(message, seq)); }
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); }
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)); }
private SmsPacket GetActiveRespPacket(CmppHead head) { IMessage message = new CmppActiveTestResp(); return(CmppTools.GroupPacket(message, head.SequenceId)); }