【发布时间】:2014-01-14 05:14:26
【问题描述】:
我正在使用 XMPPFramework (https://github.com/robbiehanson/XMPPFramework) 开发 iOS 聊天客户端,谁能帮我处理聊天和消息。 我使用 Spark (http://www.igniterealtime.org/projects/spark/index.jsp) 来测试我的 iOS 聊天客户端。
我发现 Spark 在 Openfire 服务器日志中发送的消息 XML 格式如下:
<message id="nBT3N-161"
to="aaa@demo.com/7beebb67"
from="bbb@demo.com/Spark 2.6.3"
type="chat">
<body>testing message ...</body>
<thread>FIoMFD</thread>
<x xmlns="jabber:x:event"><offline/><composing/></x>
</message>
XML 格式的消息有 id :
id="nBT3N-161"
和线程ID:
<thread>FIoMFD</thread>
和其他信息:
<x xmlns="jabber:x:event"><offline/><composing/></x>
但是,.. 当我使用 XMPPSteam 发送消息时,Openfire 日志中的消息 XML 格式如下:
<message type="chat"
to="bbb@demo.com/Spark 2.6.3"
from="aaa@demo.com/7beebb67">
<body>tttttttttttttttt</body>
</message>
消息 XML 格式不包括消息 ID、线程 ID 和 xmlns 信息。我的代码如下:
- (IBAction)didSendingMessage:(id)sender
{
NSString *messageStr = self.messageTextField.text;
if([messageStr length] > 0) {
NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
[body setStringValue:messageStr];
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:@"bbb@demo.com/Spark 2.6.3"];
[message addChild:body];
[imManager.xmppStream sendElement:message];
self.messageTextField.text = @"";
[self.tView reloadData];
}
}
我是否错过了什么或做错了什么?如何在消息中生成这些信息(例如:消息 ID、线程、xmlns ..)?
或者我如何创建消息线程或对话线程?
XMPPFramework 在asmack (https://github.com/Flowdalic/asmack) 中是否有类似ChatManager 到createChat 的内容?
谢谢
【问题讨论】:
标签: ios xmpp openfire xmppframework