一、说明
客户端和服务器端采用Apache的mina框架实现了APP的长连接
二、JAVA服务端
- 创建一个基于TCP/IP的非阻塞的server端的Socket
- 编写过滤器(使用mina提供的文本换行符编解码器)
- 设置读取数据的缓冲区大小
- 设置读写通道10秒内无操作进入空闲状态
- 为接收器设置管理服务
- 为Socket绑定端口
2.1长连接服务器端代码
public class Demo1Server {
//日志类的实现
private static Logger logger = Logger.getLogger(Demo1Server.class+"");
//端口号,要求客户端与服务器端一致
private static int PORT = 9088;
public static void main(String[] args){
IoAcceptor acceptor = null;
try{
//创建一个非阻塞的server端的Socket
acceptor = new NioSocketAcceptor();
//设置过滤器(使用mina提供的文本换行符编解码器)(在bind前进行)
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"),LineDelimiter.WINDOWS.getValue(),LineDelimiter.WINDOWS.getValue())));
//自定义的编解码器
//acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new CharsetCodecFactory()));
//设置读取数据的换从区大小
acceptor.getSessionConfig().setReadBufferSize(2048);
//读写通道10秒内无操作进入空闲状态
acceptor.getSessionConfig().setIdleTime