首页 > 代码库 > 基于smack的xmpp packet 重写
基于smack的xmpp packet 重写
基于Smack 实现Notification数据包。smack的类中有一个org.jivesoftware.smack.packet.IQ只需对他重写即可,在做的时候其实可以简单一点的,如果你使用tinder.jar 包,其IQ org.xmpp.packet.IQ 有一个 setChildElement 方法与 getChildElement相对应,但smack没有!
主要用于与android Client之间Push通信。定义一套自己的数据包格式:
1 <iq id="11111" to="aa@qq.com" type="get">2 <notification xmlns="androidpn:iq:notification">3 <id>123456</id> 4 <apiKey>1234567890</apiKey> 5 <title>nothing</title> 6 <message>jintiantianqibuycuo</message> 7 <uri>heoo</uri> 8 </notification>9 </iq>
重新写了一下body的部分,代码如下:
1 /** 2 * Notification 重写XMPP 的IQ packet (Smack) 3 * 4 * @author Charles 5 * @date 2011/10/16 6 * 7 * 8 */ 9 10 11 package com.gareatech.testxmpp; 12 13 import org.jivesoftware.smack.packet.IQ; 14 15 16 /** 17 * 重构之后的数据样式 18 * - 19 * <iq id="11111" to="aa@qq.com" type="get"> 20 * <notification xmlns="androidpn:iq:notification"> 21 * <id>123456</id> 22 * <apiKey>1234567890</apiKey> 23 * <title>nothing</title> 24 * <message>jintiantianqibuycuo</message> 25 * <uri>heoo</uri> 26 * </notification> 27 * </iq> 28 * 29 * */ 30 public class Notification extends IQ { 31 private Notify notify; 32 33 public Notify getNotify() { 34 return notify; 35 } 36 37 public void setNotify(Notify notify) { 38 this.notify = notify; 39 } 40 41 @Override 42 public String getChildElementXML() { 43 StringBuilder buf = new StringBuilder(); 44 if (notify != null) { 45 buf.append(notify.toXML()); 46 } 47 return buf.toString(); 48 } 49 50 /** 51 * Notify 52 * Body 部分,重写为<> 53 * 54 * */ 55 public static class Notify { 56 private String id; 57 private String apiKey ; 58 private String title; 59 private String message; 60 private String uri; 61 62 public String getId() { 63 return id; 64 } 65 66 public void setId(String id) { 67 this.id = id; 68 } 69 70 public String getApiKey() { 71 return apiKey; 72 } 73 74 public void setApiKey(String apiKey) { 75 this.apiKey = apiKey; 76 } 77 78 public String getTitle() { 79 return title; 80 } 81 82 public void setTitle(String title) { 83 this.title = title; 84 } 85 86 public String getMessage() { 87 return message; 88 } 89 90 public void setMessage(String message) { 91 this.message = message; 92 } 93 94 public String getUri() { 95 return uri; 96 } 97 98 public void setUri(String uri) { 99 this.uri = uri;100 }101 102 public String toXML() {103 StringBuilder buf = new StringBuilder();104 buf.append("<notification xmlns=\"").append("androidpn:iq:notification\">");105 buf.append("<id>").append(id).append("</id>");106 buf.append("<apiKey>").append(apiKey).append("</apiKey>");107 buf.append("<title>").append(title).append("</title>");108 buf.append("<message>").append(message).append("</message>");109 buf.append("<uri>").append(uri).append("</uri>");110 buf.append("</notification>");111 return buf.toString();112 }113 }114 }
基于smack的xmpp packet 重写
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。