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

  • 相关阅读:
    基础
    树梅派线程
    超声波
    电脑版微信双开多开
    子类能不能重写父类的构造方法
    window8taskost.exe一直占用cpu
    windows下rocketmq安装
    spring循环依赖问题
    线程池的种类
    并行和并发有什么区别?
  • 原文地址:https://www.cnblogs.com/eustoma/p/4273454.html
Copyright © 2011-2022 走看看