GPS定位 JT808 / 视频监控 - JT1078 技术剖析(1)
JT 808 协议协议分析:
Netty 启动流程分析:
代码实现:
int port = Integer.parseInt(this.configService.getJt808ServerPort());// bossGroup 线程组用于接收客户端的连接 nThreads = 0时,使用默认的线程数 DEFAULT_EVENT_LOOP_THREADSbossGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("JT808ServerBossGroup"));// workerGroup线程用于处理每个连接的读写 nThreads = 0时,使用默认的线程数 DEFAULT_EVENT_LOOP_THREADSworkerGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("JT808ServerWorkerGroup"));try {ServerBootstrap b = new ServerBootstrap();b.group(bossGroup, workerGroup);b.channel(NioServerSocketChannel.class);// RCVBUF_ALLOCATOR 用于设置接收缓冲区内存分配器。// AdaptiveRecvByteBufAllocator 是一种自适应的接收字节缓冲区分配器。 默认值 64字节(1/16M), 2048字节(2M), 65536字节(64M)b.childOption(ChannelOption.RCVBUF_ALLOCATOR, new AdaptiveRecvByteBufAllocator(64, 2048, 65536));// Handler 为 ChannelInitializer<SocketChannel> 实例,有连接时执行 实例的 initChannel 方法b.childHandler(jt808ServerInitializer);// 服务器绑定端口监听future = b.bind(port).sync();future.channel().closeFuture().sync();} finally {bossGroup.shutdownGracefully();workerGroup.shutdownGracefully();}