gpt4 book ai didi

ios - Xmpp MultiUserChat (MUC) Group 不稳定

转载 作者:可可西里 更新时间:2023-11-01 05:52:15 24 4
gpt4 key购买 nike

我创建了一个 Xmpp 聊天应用程序,我在其中实现了一对一和群聊。聊天本身运行良好。问题出在群聊中。我创建了一个有 2-3 名成员的群组,聊天再次正常,但是当我终止应用程序并重新启动它时,我没有从我创建的任何群组中收到群组消息。当我连接到 XMPP 服务器并重新加入任何组时,我会收到消息。我的问题是,每次完全杀死应用程序后,我都必须重新加入群组。

请告诉我当我从终止状态打开应用程序时如何获取消息或自动加入组。

最佳答案

一旦您的应用程序启动或从后台退出,您需要将状态发送到 XMPP 服务器。所以 XMPP 服务器知道相应的 group 已准备好处理事件。

编辑:您可以使用以下代码发送状态。

- (void)goOnline {


NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
NSXMLElement *show = [NSXMLElement elementWithName:@"show"
stringValue:@"dnd"];
NSXMLElement *status = [NSXMLElement elementWithName:@"status" stringValue:@"available"];
NSXMLElement *priority = [NSXMLElement elementWithName:@"priority" stringValue:@"24"];

[presence addChild:show];
[presence addChild:status];
[presence addChild:priority];

[_xmppStream sendElement:presence];

[self createOrJoinRoom];

}
- (void)createOrJoinRoom {
if ([appDelegate.xmppStream isConnected]) {

NSString *myJID = [[NSUserDefaults standardUserDefaults] stringForKey:@"XMPPUserId"];

NSXMLElement *presence = [NSXMLElement elementWithName:@"presence"];
[presence addAttributeWithName:@"from" stringValue:[[appDelegate.xmppStream myJID]full]];
[presence addAttributeWithName:@"to" stringValue:[NSString stringWithFormat:@"%@@%@/%@", @"newone", GroupChatRoomName,myJID]];
NSXMLElement *xelement = [NSXMLElement elementWithName:@"x" xmlns:XMPPMUCNamespace];
[presence addChild:xelement];
[appDelegate.xmppStream sendElement:presence];
}

}

希望对您有所帮助。

关于ios - Xmpp MultiUserChat (MUC) Group 不稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370078/

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