IOS聊天应用程序使用XMPP协议(ejabberd)聊天室问题

时间:2015-04-09 12:26:45

标签: chat ejabberd xmppframework

  

我正在使用XMPP协议(ejabberd)开发IOS聊天应用程序。我的聊天室是在我的服务器上创建的,它将roomID返回给我。

我在房间/小组聊天中遇到问题。当我发送一条消息时,它会重复多次,比如3到4次。如何解决这个问题。我的代码在这里

 XMPPJID *roomJID = [XMPPJID jidWithString:[roomDict objectForKey:KEY_group_id]];

XMPPRoom *xmppRoom = [[XMPPRoom alloc] initWithRoomStorage:xmppRoomCoreDataStorage jid:roomJID dispatchQueue:dispatch_get_main_queue()];

[xmppRoom activate:[ChatHandler sharedInstance].xmppStream];
[xmppRoom addDelegate:self
        delegateQueue:dispatch_get_main_queue()];
[self insertRoomObjectWithDictionary:roomDict];
[xmppRoom joinRoomUsingNickname:[[ChatHandler sharedInstance] xmppStream].myJID.user
                        history:nil
                       password:@""];
[xmppRoom fetchConfigurationForm];
return xmppRoom;

enter image description here

2 个答案:

答案 0 :(得分:1)

以下代码段为我工作..尝试使用代码... 我在发送消息的同时发送了我的设备的uuid作为孩子,并在传入消息时检查了相同的uuid:

{{1}}

答案 1 :(得分:0)

我使用xmpp ejabbered有相同的聊天应用程序。我也面临同样的问题。在我的情况下,在xmpp服务器上,他们已将脱机消息存储设置为100.如果处于脱机模式,则消息限制超过100然后从第101条消息我将退回该消息。因此,作为解决方案,我们将离线消息限制更改为500。

{mod_offline_odbc, [
 {user_max_messages, 500}
]}