连接中关联如下:

  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. 使用extract-text-webpack-plugin提取css文件

    一.css之上的语言 js之上的语言有jsx.tyepscript.coffescript. html之上的语言有jade. css之上的语言有sass.scss.less.stylus,这几种语言区 ...

  2. [转]HTML DIV+CSS 命名规范大全

    原文链接 常用DIV+CSS命名大全集合,即CSS命名规则 我们开发CSS+DIV网页(Xhtml)时候,比较困惑和纠结的事就是CSS命名,特别是新手不知道什么地方该如何命名,怎样命名才是好的方法. ...

  3. win32 socket之select

    之前光看理论是不行滴,一定要实践,实践啊,不然永远都是门外汉!! 嗯嗯,把找到的一段源码贴上先,稍微修改了一下: #include <winsock.h> #include <std ...

  4. C语言学习笔记 (010) - 编写strcpy函数

    很多公司的面试官在面试程序员的时候,要求应聘者写出库函数strcpy()的工作方式或者叫实现,很多人以为这个题目很简单,实则不然,别看这么一个小小的函数,它可以从三个方面来考查: (1)编程风格 (2 ...

  5. VS2010调试多进程

    http://msdn.microsoft.com/zh-cn/library/ms123401.aspx 选择启动项目 在“解决方案资源管理器”中,右击项目名,然后在快捷菜单上单击“设为启动项目”. ...

  6. linux达人养成计划学习笔记(四)—— 压缩命令

    一.常见的压缩格式: 二..zip格式压缩 1.压缩文件.文件夹 zip 压缩后文件名(.zip结尾) 压缩文件名zip -r 压缩后文件夹(.zip结尾) 压缩文件 2.解压缩 unzip 压缩文件 ...

  7. webpack window 添加第三方库

    有的时候还想来点jquery,moment,undersocre之类的库,webpack可以非常容易的做到这一点,有谣言说Bower即将停止开发了, 作者推荐都使用npm来管理依赖.那么我们现在安装在 ...

  8. magento的一些小技巧(转)

    1.加载某个attribute: $attributeCode=Mage::getModel('catalog/resource_eav_attribute')                    ...

  9. 微信app支付

    http://www.bubuko.com/infodetail-1062014.html 要完成手机APP跳转到微信的APP进行微信支付,需要进行如下操作: 1.先去微信的开放平台(http://o ...

  10. dataset string dataset

    DataSet ds = new DataSet(); ds.ReadXml(dataFile); Console.WriteLine(data.Length); string dataxml = d ...