9 Stimmen

Wie die Datei zu erhalten, wenn die Verbindung Erfolg in TURNSocket von XMPPFramework in ios?

Ich möchte die TURNSocket um die Datei zwischen den beiden Benutzern zu übertragen.

Benutzer1: (iphone Sumulator) Benutzer2: (Spark-Benutzer)

Jetzt ist der Socket verbunden und ich möchte eine Datei von User2 über Spark an User1 senden. Und der iphone Sumulator kann diese Nachricht empfangen:

<iq xmlns="jabber:client" id="P1J6b-29" to="User1@local/75694fce" from="User2@local/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>

Ich habe sie in der XMPP Senden/Empfangen von Dateien im iphone sdk ...? Thema über den Umgang mit in didSucceed Methode, aber ich weiß nicht, wie ich die Datei, die von Spark-Benutzer auf dem iphone Sumulator gesendet wurde, empfangen kann.

Dann, in Ihrem didSucceed Implementierung, senden Sie Daten über den Socket, der übergeben wurde, mit:

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

Zum Schluss schließen Sie die Steckdose:

- (void)disconnectAfterWriting;

Also, wie zu codieren, um die Datei in dieser Methode oder andere erhalten?

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

1voto

Michael Punkte 41

FastSocket ausprobieren https://github.com/dreese/fast-socket . Es ist am besten für TCP-Verbindungen zwischen iPhones oder Servern geeignet. Bitte lesen Sie auch die Dokumente (insbesondere die Unit Tests) für eine sehr detaillierte Anleitung, wie man es benutzt. Sie müssen die IPs aller Geräte kennen, die miteinander verbunden werden sollen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X