| | |
| | | private static boolean started = false ; |
| | | |
| | | private TcpUnitAdapter adapter ; |
| | | private TcpIoHandler tcpIoHandler ; |
| | | private DataCodecFactory dataCodecFactory ; |
| | | |
| | | private TcpUnit(){} ; |
| | | |
| | |
| | | //得到网络 通信数据过滤器链 |
| | | DefaultIoFilterChainBuilder chain = acceptor.getFilterChain() ; |
| | | //编解码过滤器 |
| | | chain.addLast("protocol", new ProtocolCodecFilter(new DataCodecFactory(this.adapter))); |
| | | dataCodecFactory = new DataCodecFactory(this.adapter) ; |
| | | chain.addLast("protocol", new ProtocolCodecFilter(dataCodecFactory)); |
| | | |
| | | /* |
| | | * 一般ExecutorFilter 都要放在ProtocolCodecFilter 过滤器的后面, |
| | |
| | | chain.addLast("exceutor", new ExecutorFilter()); |
| | | |
| | | //业务逻辑处理器,负责处理网络会话及输入输出数据 |
| | | acceptor.setHandler(new TcpIoHandler(this.adapter)); |
| | | tcpIoHandler = new TcpIoHandler(this.adapter) ; |
| | | acceptor.setHandler(tcpIoHandler) ; |
| | | |
| | | boolean isException = false ; |
| | | try { |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 停止模块运行,将不再接入TCP网络连接,并把已经tcp连接的全部断连接 |
| | | * @param callback |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public void stop(UnitStartedCallbackInterface callback) throws Exception { |
| | | this.tcpIoHandler.stop(); |
| | | this.dataCodecFactory.stop(); |
| | | this.adapter.newUnitStopCallback().callback(); |
| | | callback.call(null); |
| | | } |
| | | |
| | | /** |
| | | * 解除停止,恢复TCP服务运行 |
| | | * @throws Exception |
| | | */ |
| | | public void recover() throws Exception { |
| | | this.tcpIoHandler.recover(); |
| | | this.dataCodecFactory.recover(); |
| | | } |
| | | |
| | | |