Domanda

Sto lavorando su un'app iOS che utilizza il server XMPPFRAMWork e OpenFire XMPP.Ho quasi finito, ma sono bloccato con il mio iOS per ricevere la richiesta IQ.Sono stato in grado di ricevere messaggi e inviare richiesta IQ ma non ricevere richieste IQ.

Ho provato a inviare la richiesta IQ dal client IOS e al server XMPP, ma l'app IOS ha appena ignorato la richiesta IQ.Dopo un lungo periodo di ricerca, ho ristretto il mio problema.Si scopre che stavo inviando la richiesta di QQ a Bare Jid.Il JID nudo è stato indirizzato al server e non direttamente al cliente.

La soluzione che ho trovato è stato quello di ottenere il pieno JID e impostare il messaggio "in" a "IQ fino al Jid completo e non il Jid nudo.Sto avendo difficoltà a capire come posso ottenere la risorsa o rendere il jid nudo a un jid completo.

Qualcuno potrebbe per favore darmi qualche suggerimento?Voglio essere in grado di ottenere il completo Jid in modo da poter inviare la richiesta IQ al mio client iOS.

È stato utile?

Soluzione

Iscriviti alla presenza della persona che desideri inviare il QI a:

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

Devono accettare il tuo abbonamento:

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

Avrai quindi inizio a prendere la presenza che include il pieno Jid da tutti i loro clienti:

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

Se hanno un cliente completo, ti invieranno la presenza contrassegnata con xep-0115, quindi puoi dire se il loro client supporta il tuo protocollo IQ prima di inviarlo a loro:

<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>
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top