public JT808MessageHandler( IOptionsMonitor <JT808Configuration> jT808ConfigurationOptionsMonitor, IJT808MsgProducer msgProducer, IJT808MsgReplyLoggingProducer msgReplyLoggingProducer, IJT808Config jT808Config) { this.JT808Serializer = jT808Config.GetSerializer(); this.MsgProducer = msgProducer; this.MsgReplyLoggingProducer = msgReplyLoggingProducer; 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 }, }; }
/// <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(); }
public JT808CustomMessageHandlerImpl( ILoggerFactory loggerFactory, IJT808MsgReplyProducer msgReplyProducer, IJT808MsgLogging jT808MsgLogging, IOptionsMonitor <JT808Configuration> jT808ConfigurationOptionsMonitor, IJT808MsgProducer msgProducer, IJT808MsgReplyLoggingProducer msgReplyLoggingProducer, IJT808Config jT808Config) : base(jT808ConfigurationOptionsMonitor, msgProducer, msgReplyLoggingProducer, jT808Config) { MsgReplyProducer = msgReplyProducer; //this.jT808TransmitService = jT808TransmitService; this.jT808MsgLogging = jT808MsgLogging; logger = loggerFactory.CreateLogger <JT808CustomMessageHandlerImpl>(); //添加自定义消息 HandlerDict.Add(0x9999, Msg0x9999); }
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); }