コード例 #1
0
 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);
     }
 }
コード例 #2
0
        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);
        }
コード例 #3
0
 protected override void Decode(IChannelHandlerContext context, IByteBuffer message, List <object> output)
 {
     try
     {
         var baseMessage = GkParser.Decode(message);
         output.Add(baseMessage);
     }
     finally
     {
         // message.SafeRelease();
     }
 }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
        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);
                }
            }
        }