首页 / MAC / Smack Message 扩展属性
Smack Message 扩展属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Smack Message 扩展属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2364字,纯文字阅读大概需要4分钟。
内容图文
![Smack Message 扩展属性](/upload/InfoBanner/zyjiaocheng/1067/fd297d34aa59405bac2e9a4057ec89c9.jpg)
由于XMPP不支持群聊很多本地化的服务,
针对Openfire开发插件解决问题:
Message 扩展:
Message videoMsg = new Message();
VideoChatRTP videoXml = new VideoChatRTP();
//扩展类型
videoXml.setVideoType(VideoMediaType.REQUEST);
//请求类型
videoXml.setAddress(address);
//地址
videoMsg.setTo(receive);
videoMsg.addExtension(videoXml);
//message扩展
XMPPConnection conn = BaseService.getInstance().getConnection();
conn.sendPacket(videoMsg);
扩展类必须继承PacketExtension
以下是段简单的实例:
public class VideoChatRTP implements PacketExtension {
private VideoMediaType videoType;
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public VideoMediaType getVideoType() {
return videoType;
}
public void setVideoType(VideoMediaType videoType) {
this.videoType = videoType;
}
public static final String NAME = "jingle";
public static final String NAME_SPACE = "com:roger:video";
public VideoChatRTP(){
super();
}
@Override
public String getElementName() {
return NAME;
}
@Override
public String getNamespace() {
return NAME_SPACE;
}
@Override
public String toXML() {
StringBuffer sb = new StringBuffer();
sb.append("<jingle").append(" xmlns=\"").append(NAME_SPACE).append("\">");
sb.append("<type>").append(videoType).append("</type>");
sb.append("<ipAddress>").append(address).append("</ipAddress>");
sb.append("</jingle>");
return sb.toString();
}
}
扩展类型监听方法:
ProviderManager.getInstance().addExtensionProvider(VideoChatRTP.NAME, VideoChatRTP.NAME_SPACE, new VideoChatReceive());
扩展类型处理类(实现PacketExtensionProvider接口):
public class VideoChatReceive implements PacketExtensionProvider {
/**
* 处理视频扩展类型message
* @author bin.xiao
* @since 2013-04-12
* */
@Override
public PacketExtension parseExtension(XmlPullParser parser)
throws Exception {
boolean done = false;
String requestType = "asdasd";
String ipAddress = "asdasd";
while(!done){
int eventType = parser.next();
String name = parser.getName();
//XML Tab标签
if(eventType == XmlPullParser.START_TAG){
if(name.equals("type")){
requestType = parser.nextText();
}
if(name.equals("ipAddress")){
ipAddress = parser.nextText();
}
}
if(eventType == XmlPullParser.END_TAG){
if(name.equals("jingle")){
done = true;
}
}
}
VideoChatRTP videoRtp = new VideoChatRTP();
videoRtp.setVideoType(VideoMediaType.valueOf(requestType));
//字符串转枚举
videoRtp.setAddress(ipAddress);
return videoRtp;
}
}
原文:http://my.oschina.net/vdroid/blog/309946
内容总结
以上是互联网集市为您收集整理的Smack Message 扩展属性全部内容,希望文章能够帮你解决Smack Message 扩展属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。