| | |
| | | System.err.println("客户端和服务端已建立连接"); |
| | | } |
| | | |
| | | /** |
| | | * channelInactive |
| | | * channel 通道 Inactive 不活跃的 |
| | | * 当客户端主动断开服务端的链接后,这个通道就是不活跃的。也就是说客户端与服务端的关闭了通信通道并且不可以传输数据 |
| | | */ |
| | | public void channelInactive(ChannelHandlerContext ctx) throws Exception { |
| | | log.error("客户端与服务端通道-关闭:" + ctx.channel().localAddress() + "channelInactive"); |
| | | } |
| | | |
| | | @Override |
| | | public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { |
| | | ctx.close(); |
| | | log.error("异常退出:" + cause.getMessage()); |
| | | } |
| | | |
| | | public void write(ChannelHandlerContext ctx, String mess) throws Exception { |
| | | String sendInfo = mess; |
| | | ctx.writeAndFlush(Unpooled.copiedBuffer(sendInfo, CharsetUtil.UTF_8)); // 必须有flush |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * channelInactive |
| | | * channel 通道 Inactive 不活跃的 |
| | | * 当客户端主动断开服务端的链接后,这个通道就是不活跃的。也就是说客户端与服务端的关闭了通信通道并且不可以传输数据 |
| | | */ |
| | | public void channelInactive(ChannelHandlerContext ctx) throws Exception { |
| | | System.out.println("客户端与服务端通道-关闭:" + ctx.channel().localAddress() + "channelInactive"); |
| | | } |
| | | |
| | | @Override |
| | | public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { |
| | | ctx.close(); |
| | | System.out.println("异常退出:" + cause.getMessage()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 业务路由 |
| | | * |
| | |
| | | * @param out |
| | | */ |
| | | public void serviceRouting(DataType dataType, ChannelHandlerContext ctx, OuterPacket out) { |
| | | log.info("从链路信息交换响应({}):{}", dataType.getCode(), out); |
| | | log.debug("从链路信息交换响应({}):{}", dataType.getCode(), out); |
| | | switch (dataType) { |
| | | case UP_DISCONNECT_INFORM: |
| | | log.info("主链路断开通知请求({}):{}", DataType.UP_DISCONNECT_INFORM.getCode(), out); |
| | | log.debug("主链路断开通知请求({}):{}", DataType.UP_DISCONNECT_INFORM.getCode(), out); |
| | | upDisconnectInformService.disconnect(ctx, out); |
| | | break; |
| | | case UP_CLOSELINK_INFORM: |
| | | log.info("下级平台主动关闭主从链路通知({}):{}", DataType.UP_CLOSELINK_INFORM.getCode(), out); |
| | | log.debug("下级平台主动关闭主从链路通知({}):{}", DataType.UP_CLOSELINK_INFORM.getCode(), out); |
| | | upCloseLinkInformService.closeLinkInform(ctx, out); |
| | | break; |
| | | case DOWN_CONNECT_RSP: |
| | | log.info("从链路连接应答({}):{}", DataType.DOWN_CONNECT_RSP.getCode(), out); |
| | | log.debug("从链路连接应答({}):{}", DataType.DOWN_CONNECT_RSP.getCode(), out); |
| | | downConnectRspService.connectRsp(ctx, out); |
| | | break; |
| | | case DOWN_DISCONNECT_RSP: |
| | | log.info("从链路注销应答({}):{}", DataType.DOWN_DISCONNECT_RSP.getCode(), out); |
| | | log.debug("从链路注销应答({}):{}", DataType.DOWN_DISCONNECT_RSP.getCode(), out); |
| | | break; |
| | | case DOWN_LINKTEST_RSP: |
| | | log.info("从链路连接保持应答({}):{}", DataType.DOWN_LINKTEST_RSP.getCode(), out); |
| | | log.debug("从链路连接保持应答({}):{}", DataType.DOWN_LINKTEST_RSP.getCode(), out); |
| | | break; |
| | | case UP_MANAGE_TOTAL_RECV_BACK_MSG: |
| | | log.info("发送车辆定位信息数量通知({}):{}", DataType.UP_MANAGE_TOTAL_RECV_BACK_MSG.getCode(), out); |
| | | log.debug("发送车辆定位信息数量通知({}):{}", DataType.UP_MANAGE_TOTAL_RECV_BACK_MSG.getCode(), out); |
| | | break; |
| | | default: |
| | | break; |