连接中关联如下:

  1. // iq提供者
  2. roviderManager.getInstance().addIQProvider("ping", "urn:xmpp:ping",
  3. new PingIQProvider());
  4. onnection.addPacketListener(new PacketListener() {
  5. @Override
  6. public void processPacket(Packet p) {
  7. PingIQ pingIQ = (PingIQ) p;
  8. IQ pongIQ = pingIQ.createResultIQ(pingIQ);
  9. // 返回
  10. connection.sendPacket(pongIQ);
  11. }
  12. , new PacketTypeFilter(PingIQ.class));

两个关联类,PingIQ,PingIQProvider

  1. import org.jivesoftware.smack.packet.IQ;
  2. public class PingIQ extends IQ {
  3. public static final String ELEMENT = "ping";
  4. public static final String NAMESPACE = "urn:xmpp:ping";
  5. @Override
  6. public String getChildElementXML() {
  7. StringBuffer sb = new StringBuffer();
  8. sb.append("<").append(ELEMENT).append(" xmlns=\"").append(NAMESPACE)
  9. .append("\">");
  10. sb.append("</").append(ELEMENT).append(">");
  11. return sb.toString();
  12. }
  13. }
  1. import org.jivesoftware.smack.packet.IQ;
  2. import org.jivesoftware.smack.provider.IQProvider;
  3. import org.xmlpull.v1.XmlPullParser;
  4. public class PingIQProvider implements IQProvider {
  5. @Override
  6. public IQ parseIQ(XmlPullParser parser) throws Exception {
  7. // TODO Auto-generated method stub
  8. PingIQ iq = new PingIQ();
  9. return iq;
  10. }
  11. }

报文如下:

    1. <iq xmlns="jabber:client" type="get" id="65dfds" from="localhost" to="test001@xmpp.qxun.org/test"><ping xmlns="urn:xmpp:ping"/></iq>
    2. <iq type="result" to="localhost" id="65dfds"/>

http://linyu19872008.iteye.com/blog/1840596

openfire ping的smack解决方案(维持在线状态)的更多相关文章

  1. 虚拟机NAT模式主机ping不通虚拟机解决方案

    本篇没有抓包,只是简单一个实施.需要的童鞋可以拿走这个方法. 虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST 模式. 桥接就是在真机的网络上模拟一个网卡,给虚拟机申请一个和真机在同一个 ...

  2. Windows Azure 不能ping通的解决方案

    Windows Azure 不能ping通如何解决? 为了避免Ping Flood攻击,Windows Azure不开放对外ICMP通讯协定,所以使用ping命令我们是无法ping通的.在微软资料中心 ...

  3. tiny210 u-boot 网络ping不通主机解决方案

    站在巨人的肩膀上: http://blog.csdn.net/liukun321/article/details/7438880 http://www.arm9home.net/read.php?ti ...

  4. 虚拟机Linux(centos)系统能ping通主机,主机无法ping通Linux解决方案

    本文引用:https://blog.csdn.net/clean_water/article/details/53023308 三个步骤: 第一步:虚拟机网络连接方式选择Nat 第二步.关闭liunx ...

  5. AWS上的实例无法ping通的解决方案

    首先Ping只是向服务器发送ICMP的数据包,如果在服务器的防火墙没有允许ICMP协议的数据包的话,那么即使服务器正常运行,那也是ping不同的. 对于亚马逊云服务器,首先我们要确保实例绑定的安全组允 ...

  6. 远程连接阿里云服务器ping不通ip解决方案

    搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西.  在出入方向上新建一个安全组,就可以搞定了.

  7. Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案

    docker 容器网络默认使用 bridge 桥接模式,正常情况下,容器会使用 daemon.json 中定义的虚拟网桥来与宿主机进行通讯. 最近更新 Docker for mac 之后,发现以前容器 ...

  8. 基于xmpp openfire smack开发之Android客户端开发[3]

    在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...

  9. Smack+OpenFire搭建IM通信,包含心跳和自动重连(Android实现)

    Smack是一个开源,易于使用的XMPP(jabber)客户端类库.优点:简单的,功能强大,给用户发送信息只需三行代码便可完成.缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大.Op ...

随机推荐

  1. Java读写TXT文本

    public String readTxtFile(String filePath) { StringBuffer appInfolistInput = new StringBuffer(); try ...

  2. webdriver之py,driver启动chrome时加载profile

    import os from selenium import webdriver from selenium.webdriver.chrome.options import Options execu ...

  3. AI 高等数学、概率论基础

    一.概论 基础引入: 原理一:[两边夹定理] 原理二:[极限] X为角度x对应的圆弧的点长: 原理三[单调性]: 引入: 二.导数 常见函数的导数: 四.应用: 求解: 泰勒展式和麦克劳林展式: 泰勒 ...

  4. PHP中使用 JKS(Java Key Store)的方法

    PHP语言无法直接读取 JKS中的密钥,需要通过以下方法进行转换 本例以JKS中的私钥为例 首先 使用 KeyStore Explorer工具,打开JKS文件 ,此时可能需要输入 JKS密码 对私钥进 ...

  5. SpringMVC整合Mongodb开发,高级操作

    开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 +  ...

  6. mysql合并binlog

    例如: PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL DAY);

  7. 'Agent XPs' component is turned off as part of the security configuration for this server

    To turn on Agent XP's by running this script: sp_configure 'show advanced options', 1; Go RECONFIGUR ...

  8. 【转】我的第一次和最后一次 Hackathon 经历

    我的第一次和最后一次 Hackathon 经历 在旧金山地区经常有一些叫做“Hackathon”的活动,吸引挺多人参加.我一直听说这个名字,可是一直不知道它到底是什么.我从来对竞赛式的活动不感兴趣,我 ...

  9. vmware虚拟机三种网络连接方式

    一.概述 vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们可以在选项栏的“ ...

  10. systemctl 命令

    systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 ...