using DotNetty.Transport.Channels; using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkDriver.Session; using log4net; using Service.Car.Msg.Car.Req; using Service.Car.Msg.Host.Resp; namespace Service.Car.Handler; /// /// /// [Order(8)] [Scope("InstancePerDependency")] public class ElecMsgHandler : SimpleChannelInboundHandler, IBaseHandler { private static readonly ILog Log = LogManager.GetLogger(typeof(ElecMsgHandler)); /// /// /// /// /// /// protected override void ChannelRead0(IChannelHandlerContext ctx, ElecMsg msg) { Log.Info($"receive ElecMsg = {msg}"); IoSession? ioSession = SessionMgr.GetSession(msg.CarNo); ioSession?.BusinessMap.AddOrUpdate("ElecMsg", msg, ((s, o) => msg)); ioSession?.BusinessMap.AddOrUpdate("Connected", true, ((s, o) => true)); ElecMsgResp resp = new ElecMsgResp(0) { CarNo = msg.CarNo }; resp.InitCurrentTime(); ctx.Channel.WriteAndFlushAsync(resp); } }