public override void ChannelRead(IChannelHandlerContext context, object message) { if (message is Message msg) { // var json = JsonConvert.SerializeObject(msg,Formatting.None); GkParser.ParseCore(ref msg); Logger.Info($"收到设备消息, msg:{msg.Bodies[0].IdType.ToString()}"); MsgBuilder.BuildResp(context, msg); } }
protected override void Decode(IChannelHandlerContext context, BaseMessage message, List <object> output) { // var content = message.Content; var primaryMsg = GkParser.BodyParse(message); if (primaryMsg == null) { return; } output.Add(primaryMsg); }
protected override void Decode(IChannelHandlerContext context, IByteBuffer message, List <object> output) { try { var baseMessage = GkParser.Decode(message); output.Add(baseMessage); } finally { // message.SafeRelease(); } }
protected override void Decode(IChannelHandlerContext context, IByteBuffer input, List <object> output) { try{ var buffer = GkParser.Split(input); if (buffer == null) { return; } output.Add(buffer); } finally { ResetBuffer(input); } }
protected override void Decode(IChannelHandlerContext context, DatagramPacket message, List <object> output) { try { if (message is DatagramPacket packet) { var buffer = packet.Content; var baseMessage = GkParser.Decode(buffer); // var baseUdpMsg = (BaseUdpMessage)baseMessage; var baseUdpMsg = new BaseUdpMessage(baseMessage, packet.Recipient); output.Add(baseUdpMsg); } } finally { // message.SafeRelease(); } }
protected override void Decode(IChannelHandlerContext context, DatagramPacket message, List <object> output) { Logger.Info("FrameSplitDecoder 收到server端消息"); var input = message.Content; try { var buffer = GkParser.Split(input); if (buffer == null) { return; } output.Add(new DatagramPacket(buffer, message.Sender)); } finally { ResetBuffer(input); } }
public override void ChannelRead(IChannelHandlerContext context, object message) { var sender = ((UdpMessage)message).Sender; if (message is Message msg) { // var json = JsonConvert.SerializeObject(msg,Formatting.None); GkParser.ParseCore(ref msg); Logger.Info($"收到设备消息, msg:{msg.Bodies[0].IdType.ToString()}"); // MsgBuilder.BuildResp(context, msg); var header = msg.Header; var body = msg.Bodies[0]; if (IdType.HeartBeat.Equals(body.IdType) && HeartBeatType.Online.Equals(body.HeartBeatInfo.HeartBeatType)) { //下发查询设备类型指令 var content = MsgBuilder.BuildContent(IdType.ReadDeviceInfo, MsgType.Configure, OpsType.ReadCommand, 0, 1, null); var cmd = MsgBuilder.BuildMessage(header.Src, header.Dst, header.Ver, false, 1, 0, content); var buffer = Unpooled.WrappedBuffer(cmd); var packet = new DatagramPacket(buffer, sender); context.WriteAndFlushAsync(packet); } } }