zoukankan      html  css  js  c++  java
  • openfire ping的smack解决方案(维持在线状态)

    连接中关联如下:

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

    两个关联类,PingIQ,PingIQProvider

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

    报文如下: 

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

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

  • 相关阅读:
    ICommand接口
    Binding自动侦听
    WPF比较两个随机数大小写,利用MVVM思想实现
    从一个ListBox中的元素点击导入另一个ListBox元素中
    利用FluidMoveBehavior制作出手机通讯录平滑的效果
    从零开始学习Gradle之三---多项目构建
    用Gradle 构建你的android程序
    iPhone/iPad调整事件递交
    iOS8-Sampler
    iOS8-Sampler
  • 原文地址:https://www.cnblogs.com/tiancai/p/10070319.html
Copyright © 2011-2022 走看看