将用户添加到 xmpp 组或 muc

Posted

技术标签:

【中文标题】将用户添加到 xmpp 组或 muc【英文标题】:Add a user to xmpp group or in muc 【发布时间】:2015-04-15 09:41:56 【问题描述】:

我想将 4 个成员(他们已经是 oprefire 中的用户)添加到一个组。 我想在没有用户许可或发送邀请的情况下添加它们

现在我正在使用此代码邀请用户:

[sender inviteUser:[XMPPJID jidWithString:@"keithoys"] withMessage:@"Greetings!"];

还有其他方法可以实现吗?

【问题讨论】:

Adding participants to XMPP chat rooms 的可能重复项 【参考方案1】:

当用户向其他用户发送请求时,会调用下面的委托方法:

-(void)xmppMUC:(XMPPMUC *)sender roomJID:(XMPPJID *)roomJID didReceiveInvitation:(XMPPMessage *)message

    roomMemoryStorage = [[XMPPRoomMemoryStorage alloc] init];
    xmppRoom = [[XMPPRoom alloc]
                initWithRoomStorage:roomMemoryStorage
                                jid:roomJID
                      dispatchQueue:dispatch_get_main_queue()];

    [xmppRoom activate:[self xmppStream]];

    [xmppRoom addDelegate:self delegateQueue:dispatch_get_main_queue()];

    //Now add user to the group directly without prompting them
    [xmppRoom joinRoomUsingNickname:[xmppStream myJID].user history:nil];

我只写了代码,如果你需要解释,我会。

【讨论】:

你好@the_UB,如何从 roomMemoryStorage 中检索数据? 为什么要检索数据? 我必须在 tableView 中显示房间列表(用户是所有者或成员)。然后我必须在聊天屏幕上显示消息历史记录。就像我们为单用户聊天所做的那样。我被困在这一点上。请建议我如何从核心数据中保存和检索数据。

以上是关于将用户添加到 xmpp 组或 muc的主要内容,如果未能解决你的问题,请参考以下文章

XMPP:只读多用户聊天

无需登录 XMPP MUC

多用户聊天 XMPP

不允许任何所有者撤销创建房间/MUC 的用户的所有权 - Ejabberd XMPP

XMPP 多 MUC Web 应用程序操作指南

XMPP MUC 向房间发送消息时重复消息