2017-01-03 6 views
0

я использовал - (void)blockJID:(XMPPJID*)xmppJID метод в классе XMPPBlocking«недоступен» (в сети) наличие не обновляется на обоих концах

<iq from='[email protected]/chamber' type='set' id='block1'> 
     <block xmlns='urn:xmpp:blocking'> 
     <item jid='[email protected]'/> 
     </block> 
    </iq> 

Я хочу, чтобы блокировать пользователя (ей) в приложении XMPP (например, WhatsApp). когда я использую вышеуказанный код, присутствие «недоступно» не обновляется на обоих концах. но после повторного подключения он обновляет «недоступное» присутствие на обоих концах.

, когда я блокировать пользователя, мои требования,

  • пользователь не должен получать сообщения на обоих концах (она прекрасно работает даже не соединившихся)
  • как пользователь должен быть «недоступен» (другой конец не получение чего-либо, когда я выполняю над IQ, поэтому работаю только после повторного подключения)

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

ответ

0

И наконец, я сделал с.

Для уведомить собеседника (другой конец) пользователя, используемый ниже кода,

XMPPPresence *presence = [[XMPPPresence alloc] initWithType:@"unavailable" to:jid]; 
[_xmppStream sendElement:presence]; 

А наличие приятеля обновляется локально в стороне отправителя.

Для разблокировки, я просто подпишу приятель (другой конечный пользователь) снова.

Я не знаю, правильно ли он. Я всегда жду от вас идеальных решений.

+0

Почему бы не отменить подписку на присутствие, если вы хотите заблокировать кого-то? – dichen

+0

Да. я пытался, но если мне это нравится, что мне нужно делать, когда я разблокирую? –

+0

Не знал, что вам нужно разблокировать. Проверьте «Блокировать связь» https://xmpp.org/rfcs/rfc3921.html#privacy – dichen

 Смежные вопросы

  • Нет связанных вопросов^_^