openfire ping的smack解决方案(维持在线状态)
连接中关联如下:
- // iq提供者
- roviderManager.getInstance().addIQProvider("ping", "urn:xmpp:ping",
- new PingIQProvider());
- onnection.addPacketListener(new PacketListener() {
- @Override
- public void processPacket(Packet p) {
- PingIQ pingIQ = (PingIQ) p;
- IQ pongIQ = pingIQ.createResultIQ(pingIQ);
- // 返回
- connection.sendPacket(pongIQ);
- }
- , new PacketTypeFilter(PingIQ.class));
两个关联类,PingIQ,PingIQProvider
- import org.jivesoftware.smack.packet.IQ;
- public class PingIQ extends IQ {
- public static final String ELEMENT = "ping";
- public static final String NAMESPACE = "urn:xmpp:ping";
- @Override
- public String getChildElementXML() {
- StringBuffer sb = new StringBuffer();
- sb.append("<").append(ELEMENT).append(" xmlns=\"").append(NAMESPACE)
- .append("\">");
- sb.append("</").append(ELEMENT).append(">");
- return sb.toString();
- }
- }
- import org.jivesoftware.smack.packet.IQ;
- import org.jivesoftware.smack.provider.IQProvider;
- import org.xmlpull.v1.XmlPullParser;
- public class PingIQProvider implements IQProvider {
- @Override
- public IQ parseIQ(XmlPullParser parser) throws Exception {
- // TODO Auto-generated method stub
- PingIQ iq = new PingIQ();
- return iq;
- }
- }
报文如下:
- <iq xmlns="jabber:client" type="get" id="65dfds" from="localhost" to="test001@xmpp.qxun.org/test"><ping xmlns="urn:xmpp:ping"/></iq>
- <iq type="result" to="localhost" id="65dfds"/>
http://linyu19872008.iteye.com/blog/1840596
openfire ping的smack解决方案(维持在线状态)的更多相关文章
- 虚拟机NAT模式主机ping不通虚拟机解决方案
本篇没有抓包,只是简单一个实施.需要的童鞋可以拿走这个方法. 虚拟机与真机通信三种模式, 桥接模式,NAT 模式 ,HOST 模式. 桥接就是在真机的网络上模拟一个网卡,给虚拟机申请一个和真机在同一个 ...
- Windows Azure 不能ping通的解决方案
Windows Azure 不能ping通如何解决? 为了避免Ping Flood攻击,Windows Azure不开放对外ICMP通讯协定,所以使用ping命令我们是无法ping通的.在微软资料中心 ...
- tiny210 u-boot 网络ping不通主机解决方案
站在巨人的肩膀上: http://blog.csdn.net/liukun321/article/details/7438880 http://www.arm9home.net/read.php?ti ...
- 虚拟机Linux(centos)系统能ping通主机,主机无法ping通Linux解决方案
本文引用:https://blog.csdn.net/clean_water/article/details/53023308 三个步骤: 第一步:虚拟机网络连接方式选择Nat 第二步.关闭liunx ...
- AWS上的实例无法ping通的解决方案
首先Ping只是向服务器发送ICMP的数据包,如果在服务器的防火墙没有允许ICMP协议的数据包的话,那么即使服务器正常运行,那也是ping不同的. 对于亚马逊云服务器,首先我们要确保实例绑定的安全组允 ...
- 远程连接阿里云服务器ping不通ip解决方案
搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西. 在出入方向上新建一个安全组,就可以搞定了.
- Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案
docker 容器网络默认使用 bridge 桥接模式,正常情况下,容器会使用 daemon.json 中定义的虚拟网桥来与宿主机进行通讯. 最近更新 Docker for mac 之后,发现以前容器 ...
- 基于xmpp openfire smack开发之Android客户端开发[3]
在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...
- Smack+OpenFire搭建IM通信,包含心跳和自动重连(Android实现)
Smack是一个开源,易于使用的XMPP(jabber)客户端类库.优点:简单的,功能强大,给用户发送信息只需三行代码便可完成.缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大.Op ...
随机推荐
- java mail qq邮箱配置 实例
程序入口:Test_Email_N.java import java.io.IOException; import java.util.Date; import java.util.Propertie ...
- 【解决问题】failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer.
failed: java.lang.RuntimeException: org.openqa.selenium.WebDriverException: Unexpected error launchi ...
- Fedora 20 安装搜狗拼音输入法
1.卸载ibus sudo yum remove ibus gsettings set org.gnome.settings-daemon.plugins.keyboard active fal ...
- SpringBoot配置属性之Migration
SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...
- Event事件的兼容性(转)
window.event问题问题说明:window.event 只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.解决方法:在事件发生的函数上 ...
- Google大数据技术架构探秘
原文地址:https://blog.csdn.net/bingdata123/article/details/79927507 Google是大数据时代的奠基者,其大数据技术架构一直是互联网公司争相学 ...
- 【js】在js中加HTML注释标签的原因?
<script type="text/JavaScript"> <!-- js代码 //--> //就是这句,为什么还要在-->前加上js注释 < ...
- git web开发版本管理
使用git来管理web开发: 我们需要做的事情 : 1,在服务器建立版本仓库: 2,在服务器建立稳定版本的站点,编写版本仓库的hooks: 3,在开发服务器上提交开发版本: 下面一步一步来:(注意建立 ...
- [转]byte为什么要与上0xFF?
无意间翻看之间的代码,发现了一段难以理解的代码. byte[] bs = digest.digest(origin.getBytes(Charset.forName(charsetName))) ; ...
- SpringApplication初始化
SpringApplication: private void initialize(Object[] sources) { if (sources != null && source ...