예제 #1
0
        /// <summary>
        /// 重写消息处理器
        /// </summary>
        /// <param name="request"></param>
        /// <param name="session"></param>
        public override byte[] Processor(JT808HeaderPackage request, IUnionSession session)
        {
            //AOP 可以自定义添加一些东西:上下行日志、数据转发
            logger.LogDebug("可以自定义添加一些东西:上下行日志、数据转发");
            //流量
            jT808Traffic.Increment(request.Header.TerminalPhoneNo, DateTime.Now.ToString("yyyyMMdd"), request.OriginalData.Length);
            var parameter = (request.Header.TerminalPhoneNo, request.OriginalData.ToArray());

            //转发数据(可同步也可以使用队列进行异步)
            try
            {
                jT808TransmitService.SendAsync(parameter);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "");
            }
            //上行日志(可同步也可以使用队列进行异步)
            jT808MsgLogging.Processor(parameter, UnionMsgLoggingType.up);
            //处理上行消息
            var down = base.Processor(request, session);

            //下行日志(可同步也可以使用队列进行异步)
            jT808MsgLogging.Processor((request.Header.TerminalPhoneNo, down), UnionMsgLoggingType.down);
            return(down);
        }
 public Task StartAsync(CancellationToken cancellationToken)
 {
     jT808MsgConsumer.Subscribe();
     jT808MsgConsumer.OnMessage((item) => {
         //string str = item.Data.ToHexString();
         jT808Traffic.Increment(item.TerminalNo, DateTime.Now.ToString("yyyyMMdd"), item.Data.Length);
     });
     return(Task.CompletedTask);
 }