| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
fdwm
10年前发布

基于Apache mina 的android 客户端tcp长连接实现

TCP-long-connection-based-on-Apache-mina

基于Apache mina 的tcp长连接实现,可用于android客户端推送。

项目Github地址:https://github.com/sddyljsx/Android-tcp-long-connection-based-on-Apache-mina

项目将Apache的mina项目移植到了android平台。实现长连接的主要思想是使用了mina的KeepAliveFilter过滤器。

/**   * 服务器地址   */  public static final String HOSTNAME = "192.168.1.15";  /**   * 服务器端口号   */  public static final int PORT = 8081;  /**   * 连接超时时间,30 seconds   */  public static final long SOCKET_CONNECT_TIMEOUT = 30 * 1000L;  /**   * 长连接心跳包发送频率,10 seconds   */  public static final int KEEP_ALIVE_TIME_INTERVAL = 10;  /**   * 长连接心跳包应答超时   */  public static final int KEEP_ALIVE_RESPONSE_TIMEOUT = 5;  /**   * 心跳包 ping message   */  public static final String PING_MESSAGE="ping";  /**   * 心跳包 pong message   */  public static final String PONG_MESSAGE="pong";

Android客户端:

核心代码如下图所示,规定了长连接ping与pong信息的规则,以及网络参数配置信息。

配置信息:

/**   * 服务器地址   */  public static final String HOSTNAME = "192.168.1.15";  /**   * 服务器端口号   */  public static final int PORT = 8081;  /**   * 连接超时时间,30 seconds   */  public static final long SOCKET_CONNECT_TIMEOUT = 30 * 1000L;  /**   * 长连接心跳包发送频率,10 seconds   */  public static final int KEEP_ALIVE_TIME_INTERVAL = 10;  /**   * 长连接心跳包应答超时   */  public static final int KEEP_ALIVE_RESPONSE_TIMEOUT = 5;  /**   * 心跳包 ping message   */  public static final String PING_MESSAGE="ping";  /**   * 心跳包 pong message   */  public static final String PONG_MESSAGE="pong";

程序启动后,PushService启动,并开始与服务器连接。

服务器端核心代码:

服务器与客户端的ping与pong信息要保持一致。服务器启动LongTcpServer即可。

在服务器可以看到日志信息:

可以看到,成功建立了链接,并且每隔10秒都会受到ping信息,并发送pong信息应答。

来自:http://blog.csdn.net/sddyljsx/article/details/45104045

 本文由用户 fdwm 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1429368038517.html
Android开发 移动开发 Apache MINA