我开始使用 robbiehanson / XMPPFramework 开发一个XMPP ios客户端我试图实现用户绑定.. 即打字指示器。当两个用户都在使用ios客户端时它正在工作。当我尝试使用多个客户端时,即一个用户正在使用iOS客户端而另一个用户使用Spark桌面客户端,则输入指示符不起作用。
//发送打字通知
NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:self.userprofile.jidStr];
// [message addChild:body];
// chat notifications
XMPPMessage *xmppMessage = [XMPPMessage messageFromElement:message];
[xmppMessage addComposingChatState];
[appDelegate.xmppStream sendElement:xmppMessage];
//用于接收键入通知
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
{
if ([message hasComposingChatState]) {
self.statusLabel.text=@"is typing...";
}
}
当两个用户使用我的iOS客户端时,打字通知正常。 但是当使用ios客户端和其他用户使用不同客户端时,打字通知无法正常工作,
请告诉我实现这一目标的最佳方法。
答案 0 :(得分:0)
替换以下行
[xmppMessage addComposingChatState];
与
[xmppMessage addMarkableChatMarker];
其他代码没问题。试试这个。
答案 1 :(得分:0)
您需要实现xmpp-0022,通过这种方式,消息传递应用程序可以实现打字,发送,传送和查看状态