2011-12-05 15 views
9

Desidero utilizzare TURNSocket per trasferire il file tra i due utenti.Come si riceve il file quando si collega con successo in TURNSocket di XMPPFramework in ios?

Utente1: (iphone sumulator) Utente2: (utente Spark)

Ora il socket è connesso, e voglio inviare un file a Utente1 Utente2 dal via della Spark. E il sumulator iPhone può ricevuto questi messaggi:

<iq xmlns="jabber:client" id="P1J6b-29" to="[email protected]/75694fce" from="[email protected]/Spark 2.6.3"  type="set"> 
    <si xmlns="http://jabber.org/protocol/si" id="jsi_8334411215933911079" mime-type="image/png" 
     profile="http://jabber.org/protocol/si/profile/file-transfer"> 
    <file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="a2.png" size="12618"> 
     <desc>Sending file</desc> 
    </file> 
    <feature xmlns="http://jabber.org/protocol/feature-neg"> 
     <x xmlns="jabber:x:data" type="form"> 
     <field var="stream-method" type="list-single"> 
      <option> 
      <value>http://jabber.org/protocol/bytestreams</value> 
      </option> 
      <option> 
      <value>http://jabber.org/protocol/ibb</value> 
      </option> 
     </field> 
     </x> 
    </feature> 
    </si> 
</iq> 

ho visto questi nel XMPP Sending/Receving file in iphone sdk ...? argomento su come gestire in didSucceed metodo, ma non so come ricevere il file che è stato inviato dall'utente Spark su l'iphone sumulator.

Poi, nel vostro didSucceed implementazione, inviare i dati sul socket che è stato passato in, utilizzando:

- (void)writeData:(NSData *)data 
    withTimeout:(NSTimeInterval)timeout 
      tag:(long)tag; 

Infine, chiudere il socket:

- (void)disconnectAfterWriting; 

Così come per il codice per ricevere il file in questo metodo o altri?

- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket { 
    // Where is the NSData that can be find to used in writeData method ? 
} 
+0

Ciao Neil, hai fatto funzionare questa cosa? –

risposta

1

Prova FastSocket https://github.com/dreese/fast-socket. È meglio per la connessione TCP tra iPhone o server. Si prega di leggere anche i documenti (in particolare i Test unitari) per istruzioni molto dettagliate su come usarlo. È necessario conoscere gli IP di ciascuno dei dispositivi necessari per connettersi l'un l'altro.

Problemi correlati