Pregunta

Estoy trabajando en una aplicación de iOS que utiliza el servidor XMPPFRAMEWARTE y OpenFire XMPP.Estoy casi terminado, pero estoy atascado con obtener mi iOS para recibir la solicitud de IQ.Pude recibir mensajes y enviar solicitud de IQ pero no recibir solicitudes de IQ.

Intenté enviar la solicitud de IQ de IOs Client y el servidor XMPP, pero la aplicación iOS acaba de ignorar la solicitud de IQ.Después de un largo tiempo de investigación, he reducido mi problema.Resulta que estaba enviando la solicitud de IQ al JID desnudo.El JID desnudo fue enrutado al servidor y no directamente al cliente.

La solución que encontré fue obtener el JID completo y establecer el mensaje "A" IQ en el JID completo y no el JID desnudo.Estoy teniendo dificultades para determinar cómo puedo obtener el recurso, o hacer el JID desnudo a un JID completo.

¿Podría alguien por favor darme algunas sugerencias?Quiero poder obtener el JID completo para poder enviar la solicitud de IQ a mi cliente iOS.

¿Fue útil?

Solución

Suscríbase a la presencia de la persona que desea enviar el IQ a:

<presence type='subscribe' from='me@example.com' to='contact@example.com'/>

Tienen que aceptar su suscripción:

<presence type='subscribed' to='me@example.com' from='contact@example.com'/>

A continuación, comenzará a obtener la presencia que incluye el JID completo de todos sus clientes:

<presence to='me@example.com' from='contact@example.com/home'/>

Si tienen un cliente con todas las funciones, le enviarán presencia marcada con xep-0115, por lo que puede saber si su cliente admite su protocolo IQ antes de enviarlos:

<presence to='me@example.com' from='contact@example.com/home'>
  <c xmlns='http://jabber.org/protocol/caps' 
     hash='sha-1'
     node='http://code.google.com/p/exodus'
     ver='QgayPKawpkPSDYmwT/WM94uAlu0='/>
</presence>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top