Exemplo n.º 1
0
 public JT808MessageHandler(
     IOptionsMonitor <JT808Configuration> jT808ConfigurationOptionsMonitor,
     IJT808MsgProducer msgProducer,
     IJT808Config jT808Config)
 {
     this.JT808Serializer = jT808Config.GetSerializer();
     this.MsgProducer     = msgProducer;
     this.JT808ConfigurationOptionsMonitor = jT808ConfigurationOptionsMonitor;
     HandlerDict = new Dictionary <ushort, MsgIdMethodDelegate> {
         { JT808MsgId.终端通用应答.ToUInt16Value(), Msg0x0001 },
         { JT808MsgId.终端鉴权.ToUInt16Value(), Msg0x0102 },
         { JT808MsgId.终端心跳.ToUInt16Value(), Msg0x0002 },
         { JT808MsgId.终端注销.ToUInt16Value(), Msg0x0003 },
         { JT808MsgId.终端注册.ToUInt16Value(), Msg0x0100 },
         { JT808MsgId.位置信息汇报.ToUInt16Value(), Msg0x0200 },
         { JT808MsgId.定位数据批量上传.ToUInt16Value(), Msg0x0704 },
         { JT808MsgId.数据上行透传.ToUInt16Value(), Msg0x0900 },
         { JT808MsgId.查询服务器时间请求.ToUInt16Value(), Msg0x0004 },
         { JT808MsgId.查询终端参数应答.ToUInt16Value(), Msg0x0104 },
         { JT808MsgId.查询终端属性应答.ToUInt16Value(), Msg0x0107 },
         { JT808MsgId.终端升级结果通知.ToUInt16Value(), Msg0x0108 },
         { JT808MsgId.位置信息查询应答.ToUInt16Value(), Msg0x0201 },
         { JT808MsgId.链路检测.ToUInt16Value(), Msg0x8204 },
         { JT808MsgId.车辆控制应答.ToUInt16Value(), Msg0x0500 },
         { JT808MsgId.摄像头立即拍摄命令.ToUInt16Value(), Msg0x8801 },
         { JT808MsgId.多媒体数据上传.ToUInt16Value(), Msg0x0801 },
         { JT808MsgId.多媒体事件信息上传.ToUInt16Value(), Msg0x0800 },
         { JT808MsgId.CAN总线数据上传.ToUInt16Value(), Msg0x0705 },
     };
 }
Exemplo n.º 2
0
 public JT808TcpServerHandler(
     IJT808MsgProducer jT808MsgProducer,
     IJT808Config jT808Config,
     ILoggerFactory loggerFactory,
     JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory,
     JT808SessionManager jT808SessionManager)
 {
     this.jT808SessionManager       = jT808SessionManager;
     this.JT808MsgProducer          = jT808MsgProducer;
     this.jT808AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
     this.JT808Serializer           = jT808Config.GetSerializer();
     logger = loggerFactory.CreateLogger <JT808TcpServerHandler>();
 }
Exemplo n.º 3
0
 public JT808MessageHandlerImpl(
     ILoggerFactory loggerFactory,
     JT808TransmitService jT808TransmitService,
     IJT808MsgLogging jT808MsgLogging,
     IOptionsMonitor <JT808Configuration> jT808ConfigurationOptionsMonitor, IJT808MsgProducer msgProducer, IJT808MsgReplyLoggingProducer msgReplyLoggingProducer, IJT808Config jT808Config)
     : base(jT808Config)
 {
     this.jT808TransmitService = jT808TransmitService;
     this.jT808MsgLogging      = jT808MsgLogging;
     logger = loggerFactory.CreateLogger <JT808MessageHandlerImpl>();
     //添加自定义消息
     HandlerDict.Add(0x9999, Msg0x9999);
 }
Exemplo n.º 4
0
 /// <summary>
 /// 使用队列方式
 /// </summary>
 /// <param name="jT808ConfigurationAccessor"></param>
 /// <param name="jT808Config"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="jT808SessionManager"></param>
 /// <param name="jT808MsgProducer"></param>
 /// <param name="jT808AtomicCounterServiceFactory"></param>
 public JT808TcpServer(
     IOptions <JT808Configuration> jT808ConfigurationAccessor,
     IJT808Config jT808Config,
     ILoggerFactory loggerFactory,
     JT808SessionManager jT808SessionManager,
     IJT808MsgProducer jT808MsgProducer,
     JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory)
 {
     SessionManager       = jT808SessionManager;
     Logger               = loggerFactory.CreateLogger("JT808TcpServer");
     Serializer           = jT808Config.GetSerializer();
     MsgProducer          = jT808MsgProducer;
     AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
     Configuration        = jT808ConfigurationAccessor.Value;
     JT808UseType         = JT808UseType.Queue;
     InitServer();
 }
Exemplo n.º 5
0
 public JT808UdpServer(
     JT808Configuration jT808Configuration,
     IJT808Config jT808Config,
     ILoggerFactory loggerFactory,
     JT808SessionManager jT808SessionManager,
     IJT808MsgProducer jT808MsgProducer,
     JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory)
 {
     SessionManager       = jT808SessionManager;
     Logger               = loggerFactory.CreateLogger("JT808UdpServer");
     Serializer           = jT808Config.GetSerializer();
     MsgProducer          = jT808MsgProducer;
     AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.udp);
     Configuration        = jT808Configuration;
     LocalIPEndPoint      = new System.Net.IPEndPoint(IPAddress.Any, jT808Configuration.UdpPort);
     server               = new Socket(LocalIPEndPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
     server.Bind(LocalIPEndPoint);
 }
Exemplo n.º 6
0
 /// <summary>
 /// 使用队列方式
 /// </summary>
 /// <param name="configurationMonitor"></param>
 /// <param name="msgProducer"></param>
 /// <param name="msgReplyLoggingProducer"></param>
 /// <param name="messageHandler"></param>
 /// <param name="jT808Config"></param>
 /// <param name="loggerFactory"></param>
 /// <param name="jT808SessionManager"></param>
 public JT808TcpServer(
     IOptionsMonitor <JT808Configuration> configurationMonitor,
     IJT808MsgProducer msgProducer,
     IJT808MsgReplyLoggingProducer msgReplyLoggingProducer,
     JT808MessageHandler messageHandler,
     IJT808Config jT808Config,
     ILoggerFactory loggerFactory,
     JT808SessionManager jT808SessionManager)
 {
     MessageHandler          = messageHandler;
     MsgProducer             = msgProducer;
     MsgReplyLoggingProducer = msgReplyLoggingProducer;
     ConfigurationMonitor    = configurationMonitor;
     SessionManager          = jT808SessionManager;
     Logger     = loggerFactory.CreateLogger <JT808TcpServer>();
     Serializer = jT808Config.GetSerializer();
     InitServer();
 }
Exemplo n.º 7
0
 public JT808UdpServer(
     IOptionsMonitor <JT808Configuration> configurationMonitor,
     IJT808MsgProducer msgProducer,
     IJT808MsgReplyLoggingProducer msgReplyLoggingProducer,
     IJT808Config jT808Config,
     ILoggerFactory loggerFactory,
     JT808SessionManager jT808SessionManager,
     JT808MessageHandler messageHandler)
 {
     SessionManager          = jT808SessionManager;
     MsgProducer             = msgProducer;
     ConfigurationMonitor    = configurationMonitor;
     MsgReplyLoggingProducer = msgReplyLoggingProducer;
     Logger          = loggerFactory.CreateLogger <JT808UdpServer>();
     Serializer      = jT808Config.GetSerializer();
     MessageHandler  = messageHandler;
     LocalIPEndPoint = new System.Net.IPEndPoint(IPAddress.Any, ConfigurationMonitor.CurrentValue.UdpPort);
     server          = new Socket(LocalIPEndPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
     server.Bind(LocalIPEndPoint);
 }
Exemplo n.º 8
0
        public JT808TcpServer(
            JT808Configuration jT808Configuration,
            IJT808Config jT808Config,
            ILoggerFactory loggerFactory,
            JT808SessionManager jT808SessionManager,
            IJT808MsgProducer jT808MsgProducer,
            JT808AtomicCounterServiceFactory jT808AtomicCounterServiceFactory)
        {
            SessionManager       = jT808SessionManager;
            Logger               = loggerFactory.CreateLogger("JT808TcpServer");
            Serializer           = jT808Config.GetSerializer();
            MsgProducer          = jT808MsgProducer;
            AtomicCounterService = jT808AtomicCounterServiceFactory.Create(JT808TransportProtocolType.tcp);
            Configuration        = jT808Configuration;
            var IPEndPoint = new System.Net.IPEndPoint(IPAddress.Any, jT808Configuration.TcpPort);

            server = new Socket(IPEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.NoDelay, true);
            server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
            server.LingerState = new LingerOption(false, 0);
            server.Bind(IPEndPoint);
            server.Listen(jT808Configuration.SoBacklog);
        }