zoukankan      html  css  js  c++  java
  • AndroidPN中的心跳检测

    在AndroidPN客户端里存在着心跳检测功能。就是每隔一段时间客户端向服务器端发送一个消息,以检测连接是否正常,发送的消息内容为:

    <presence id="h09Ke-13"></presence>

    心跳检测频率时间在SmackConfiguration类中设置:


    心跳检测任务的定义及开启在PacketWriter类中:

    心跳检测的流程:

    1.按心跳时间定时向服务发送心跳数据包;

    2.如果发送失败,抛出发送失败的异常;

    3.这个异常将被PersistentConnectionListener监听器的connectionClosedOnError方法捕捉到,这个方法的参数就是一个Exception对象;

    4.在connectionClosedOnError方法里将断开上次连接对象,然后再启动ReconnectionThread线程去重新连接服务器;

    5.如果连接再失败,waiting参数将自加一,将ReconnectionThread下次连接服务器的时间间隔延长,作用是控制客户端在服务器未开启的时候不要频繁的连接服务器,

    这样客户端不会做很多无用的工作;

    以上是自己对代码的追踪理解的,如果有理解不对的地方请指正,谢谢。

    参考:

    http://blog.csdn.net/majian_1987/article/details/9856127

  • 相关阅读:
    负环判断模版
    计蒜客NOIP2017提高组模拟赛(四)day1
    NOIP2014-10-30模拟赛
    树链剖分模版
    2014-10-30NOIP复习题1
    NOIP2014-5-17模拟赛
    NOIP2014-5-10模拟赛
    NOIP2014-3-15模拟赛
    HDU1556Color the ball
    HDU1166敌兵布阵
  • 原文地址:https://www.cnblogs.com/eustoma/p/4273454.html
Copyright © 2011-2022 走看看