public JT809MainClient( JT809HeaderOptions jT809HeaderOptions, IJT809ManualResetEvent jT809ManualResetEvent, IServiceProvider provider, ILoggerFactory loggerFactory) { JT809HeaderOptions = jT809HeaderOptions; this.serviceProvider = provider; this.logger = loggerFactory.CreateLogger <JT809MainClient>(); this.manualResetEvent = jT809ManualResetEvent; group = new MultithreadEventLoopGroup(); bootstrap = new Bootstrap(); bootstrap.Group(group) .Channel <TcpSocketChannel>() .Option(ChannelOption.TcpNodelay, true) .Handler(new ActionChannelInitializer <ISocketChannel>(channel => { IChannelPipeline pipeline = channel.Pipeline; //下级平台1分钟发送心跳 //上级平台是3分钟没有发送就断开连接 using (var scope = serviceProvider.CreateScope()) { pipeline.AddLast("jt809MainClientBuffer", new DelimiterBasedFrameDecoder(int.MaxValue, Unpooled.CopiedBuffer(new byte[] { JT809Package.BEGINFLAG }), Unpooled.CopiedBuffer(new byte[] { JT809Package.ENDFLAG }))); pipeline.AddLast("jt809MainClientSystemIdleState", new IdleStateHandler(180, 60, 200)); pipeline.AddLast("jt809MainClientEncode", scope.ServiceProvider.GetRequiredService <JT809Encoder>()); pipeline.AddLast("jt809MainClientDecode", scope.ServiceProvider.GetRequiredService <JT809Decoder>()); pipeline.AddLast("jt809MainClientConnection", scope.ServiceProvider.GetRequiredService <JT809MainClientConnectionHandler>()); pipeline.AddLast("jt809MainClientServer", scope.ServiceProvider.GetRequiredService <JT809MainClientHandler>()); } })); }
private JT809GlobalConfig() { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Encoding = Encoding.GetEncoding("GBK"); MsgSNDistributed = new DefaultMsgSNDistributedImpl(); HeaderOptions = new JT809HeaderOptions(); SkipCRCCode = false; initCrcTable(); }
public JT809InferiorService( JT809HeaderOptions jT809HeaderOptions, ILoggerFactory loggerFactory, JT809MainClient mainClient) { JT809HeaderOptions = jT809HeaderOptions; this.mainClient = mainClient; logger = loggerFactory.CreateLogger <JT809InferiorService>(); }
public JT809SubordinateLinkNotifyImplService( JT809HeaderOptions jT809HeaderOptions, ILoggerFactory loggerFactory, IJT809Config jT809Config, IOptions <JT809Configuration> jT809ConfigurationAccessor, JT809SuperiorMainSessionManager jT809SuperiorMainSessionManager ) { JT809Serializer = jT809Config.GetSerializer(); JT809HeaderOptions = jT809HeaderOptions; this.logger = loggerFactory.CreateLogger <JT809SubordinateLinkNotifyImplService>(); configuration = jT809ConfigurationAccessor.Value; this.jT809SuperiorMainSessionManager = jT809SuperiorMainSessionManager; }
/// <summary> /// 设置头部选项 /// </summary> /// <param name="jT809HeaderOptions"></param> /// <returns></returns> public JT809GlobalConfig SetHeaderOptions(JT809HeaderOptions jT809HeaderOptions) { instance.Value.HeaderOptions = jT809HeaderOptions; return(instance.Value); }