gpt4 book ai didi

ios - xmpp ios : which xmpp delegate to use to get chat notifications (XMPPMessage+XEP_0085)

转载 作者:行者123 更新时间:2023-11-29 03:00:36 24 4
gpt4 key购买 nike

我正在我的 iOS 应用程序中实现 XMPP。我知道 XMPPMessage+XEP_0085 类别有一些简单的方法,例如 addActiveChatStateaddCompositionChatState 和其他一些方法。我想显示聊天通知,例如当用户正在输入消息或暂停时。我正在使用以下代码发送消息:

  NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
[message addAttributeWithName:@"type" stringValue:@"chat"];
[message addAttributeWithName:@"to" stringValue:user];
[message addAttributeWithName:@"id" stringValue:messageID];

[message addChild:body];
[message addChild:setting];

// chat notifications
XMPPMessage *xmppMessage = [XMPPMessage messageFromElement:message];
[xmppMessage addActiveChatState];
[xmppMessage addComposingChatState];
[xmppMessage addPausedChatState];
[xmppMessage addInactiveChatState];
[xmppMessage addGoneChatState];

[_appDelegate.xmppStream sendElement:xmppMessage];

我应该在哪个 xmpp 委托(delegate)中接收这些通知。我在

中没有收到聊天通知
- (XMPPMessage *)xmppStream:(XMPPStream *)sender willReceiveMessage:(XMPPMessage *)message

委托(delegate)。

最佳答案

你是对的,XMPPMessage+XEP_0085 类别只是定义了一些简单的方法来添加聊天状态信息,还有一些方法可以在消息中检查聊天状态是否存在。因此,您需要编写一个 XMPPModule 来处理 -xmppStream:... didReceiveMessage: 中的消息(注意,您应该使用 didReceiveMessage)如果消息 hasChatState 和/或 hasComposingChatState 等,则向其他人“多播”事件。您可以在其他 XMPP 的实现中看到 XMPPModule 的示例扩展,例如XMPPPing

关于ios - xmpp ios : which xmpp delegate to use to get chat notifications (XMPPMessage+XEP_0085),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com