iOS:XMPP:键入指示不适用于不同的客户端

时间:2015-03-15 09:13:36

标签: ios xmpp xmppframework

我开始使用 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客户端和其他用户使用不同客户端时,打字通知无法正常工作

请告诉我实现这一目标的最佳方法。

2 个答案:

答案 0 :(得分:0)

替换以下行

[xmppMessage addComposingChatState];

[xmppMessage addMarkableChatMarker];

其他代码没问题。试试这个。

答案 1 :(得分:0)

您需要实现xmpp-0022,通过这种方式,消息传递应用程序可以实现打字,发送,传送和查看状态

http://xmpp.org/extensions/xep-0022.html#sect-idp643808