【发布时间】:2016-05-31 11:00:12
【问题描述】:
作为 XMPP 和 Java 的新手(我是 iOS 开发人员),通过遵循一些教程,我设法编写了一个服务器组件 (Openfire) 和客户端 iOS 应用程序(使用 robbiehanson 的 ios xmppframeowrk)。我可以向组件 iOS 客户端发送和接收消息。这是一个抽象代码:
从 iOS 客户端应用发送出席信息到服务器组件:
XMPPPresence *presence = [XMPPPresence presence];
[presence addAttributeWithName:@"to" stringValue:serverComponentJid];
NSXMLElement *someInfo = [NSXMLElement elementWithName:@"someInfo"
stringValue:@"xyz"];
[presence addChild:someInfo];
[_xmppStream sendElement:presence];
在服务器组件中接收数据包:
if (packet instanceof Presence){
org.xmpp.packet.Presence recvPresence = (Presence) packet;
Element theInfo = recvPresence.getChildElement("someInfo", "***what_shoud_be_the_namespace_here***");
System.out.println("Some info in the presence as " + theInfo.attributeValue("someInfo"));
我可以打印数据包并查看 someInfo。当我在命名空间中传递“”时,我能够正确理解,这是可以理解的。但是我仍然不明白在 xmpp 中使用什么以及如何使用命名空间。请提供任何指南、tut、链接、参考或答案
【问题讨论】:
-
更新:编辑了问题。如果我发送一个空字符串,那么我可以获得子元素。像元素 theInfo = recvPresence.getChildElement("someInfo", "");。但是我仍然需要一些关于理解 xmpp 命名空间的信息。任何参考..链接等
标签: java ios xmpp openfire xmppframework