2016-08-03 1 views
0

Я успешно реализовал групповой чат, используя Openfire с XMPP.Как получить офлайн-сообщение openfire XMPP?

Теперь, когда пользователь A отправляет сообщение пользователю B, который находится в автономном режиме, поэтому, когда пользователь B онлайн, я могу получить все непрочитанные/автономные сообщения с сервера.

Я делаю этот материал, чтобы присоединиться к комнате, но он получает все сообщения от сервера:

- (void) getJoinRoom 
{ 
    XMPPRoomMemoryStorage *roomStorage = [[XMPPRoomMemoryStorage alloc] init]; 
    XMPPJID *roomJID = [XMPPJID jidWithString:chatWithUser]; 

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

    [xmppRoom activate:self.xmppStream]; 
    [xmppRoom addDelegate:self 
      delegateQueue:dispatch_get_main_queue()]; 

    [xmppRoom joinRoomUsingNickname:self.xmppStream.myJID.user 
          history:nil 
          password:nil]; 
} 

Как получать эти сообщения в автономном режиме?

ответ

0

Согласно стандарту XMPP, только одно-чат-сообщения имеют право на автономное хранилище, поэтому сообщения типа = «групповой чат» никогда не хранятся в автономном хранилище на серверах XMPP.

По состоянию на MUC XEP, если пользователь переходит в автономный режим, он больше не считается участником комнаты. Поэтому, когда пользователь приходит в Интернет, он должен будет присоединиться к комнате, отправив пакет присутствия в комнату.