三、如何测试mina的服务端
1、创建自己的mina客户端
public IoConnector creatClient() { NioSocketConnector connector = null; try { connector = new NioSocketConnector(); connector.getSessionConfig().setReadBufferSize(1024 * 1024 * 5); connector.getSessionConfig().setBothIdleTime(10); connector.getSessionConfig().setKeepAlive(true); connector.setHandler(new MyIoHandler()); connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new DecodeFactory())); connector.setConnectTimeoutMillis(5000); } catch (Exception e) { e.printStackTrace(); } return connector; } |
2、重写Hanlder类,其中最重要的messageReciever方法需要先写好如何处理收到的数据,包括断言等
@Override public void sessionCreated(IoSession session) throws Exception { logger.info("服务端与客户端创建连接..."); } @Override public void sessionOpened(IoSession session) throws Exception { logger.info("服务端与客户端连接打开..."+ "当前第" + session.getId() + "个客户端"); } @Override public void messageReceived(IoSession session, Object message) throws Exception { if (message instanceof IoBuffer) { ServerResponse.getResponseInfo(session,(IoBuffer)message); } } @Override public void messageSent(IoSession session, Object message) throws Exception { logger.info("服务端发送信息成功..."); } @Override public void sessionClosed(IoSession session) throws Exception { logger.info("服务端与客户端连接断开..."); }
@Override public void sessionIdle(IoSession session, IdleStatus status) throws Exception { logger.info("服务端进入空闲状态..."); } @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { logger.error("服务端发送异常...", cause); } |