APP长连接的实现

该博客详细介绍了如何使用Apache Mina框架在JAVA服务端和Android客户端实现APP的长连接。服务端包括创建非阻塞Socket、设置读写缓冲区、管理服务等步骤,客户端则涉及连接超时、管理服务和网络权限配置。完整代码可以在GitHub的工程链接中获取。
摘要由CSDN通过智能技术生成

一、说明

客户端和服务器端采用Apache的mina框架实现了APP的长连接

二、JAVA服务端

  1. 创建一个基于TCP/IP的非阻塞的server端的Socket
  2. 编写过滤器(使用mina提供的文本换行符编解码器)
  3. 设置读取数据的缓冲区大小
  4. 设置读写通道10秒内无操作进入空闲状态
  5. 为接收器设置管理服务
  6. 为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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值