最近做一个项目,总体来说就像一个转发服务器吧,想用mina,现在发现mina客户端例子如下:
//Create TCP/IP connection
NioSocketConnector connector = new NioSocketConnector();
//创建接受数据的过滤器
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
//设定这个过滤器将一行一行(/r/n)的读取数据
chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory()));
//客户端的消息处理器:一个SamplMinaServerHander对象
connector.setHandler(new MinaClientHandler());
//set connect timeout
connector.setConnectTimeout(30);
//连接到服务器:
ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",8888));
//Wait for the connection attempt to be finished.
cf.awaitUninterruptibly();
cf.getSession().getCloseFuture().awaitUninterruptibly();
connector.dispose();
问题是,作为一个转发服务器,对性能有一定要求,我知道mina做服务器可以实现多路复用,但是做客户端如何实现?每次都创建这么大一个对象,然后关闭,是不是太浪费了?mina客户端
//Create TCP/IP connection
NioSocketConnector connector = new NioSocketConnector();
//创建接受数据的过滤器
DefaultIoFilterChainBuilder chain = connector.getFilterChain();
//设定这个过滤器将一行一行(/r/n)的读取数据
chain.addLast("myChin", new ProtocolCodecFilter(new TextLineCodecFactory()));
//客户端的消息处理器:一个SamplMinaServerHander对象
connector.setHandler(new MinaClientHandler());
//set connect timeout
connector.setConnectTimeout(30);
//连接到服务器:
ConnectFuture cf = connector.connect(new InetSocketAddress("localhost",8888));
//Wait for the connection attempt to be finished.
cf.awaitUninterruptibly();
cf.getSession().getCloseFuture().awaitUninterruptibly();
connector.dispose();
问题是,作为一个转发服务器,对性能有一定要求,我知道mina做服务器可以实现多路复用,但是做客户端如何实现?每次都创建这么大一个对象,然后关闭,是不是太浪费了?mina客户端
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货