2011-12-05 27 views
9

Tôi muốn sử dụng TURNSocket để chuyển tệp giữa hai người dùng.Cách nhận tệp khi kết nối thành công trong TURNSocket Of XMPPFramework in ios?

User1: (iphone sumulator) User2: (sử dụng Spark)

Bây giờ các ổ cắm đã được kết nối, và tôi muốn gửi một tập tin vào User1 từ User2 qua Spark. Và sumulator iphone có thể nhận được những thông điệp:

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

tôi thấy những trong XMPP Sending/Receving file in iphone sdk ...? chủ đề về làm thế nào để xử lý kịp didSucceed phương pháp, nhưng tôi không biết làm thế nào để nhận được các tập tin đã được gửi bởi người dùng Spark trên iphone tổng hợp.

Sau đó, trong việc thực hiện didSucceed của bạn, gửi dữ liệu trên các ổ cắm đã được thông qua tại, sử dụng:

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

Cuối cùng, đóng socket:

- (void)disconnectAfterWriting; 

Vậy làm thế nào để viết mã để nhận được tập tin trong phương pháp này hoặc những người khác?

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

Xin chào Neil, bạn có làm việc này không? –

Trả lời

1

Hãy thử FastSocket https://github.com/dreese/fast-socket. Tốt nhất là kết nối TCP giữa iPhone hoặc máy chủ. Xin vui lòng đọc các tài liệu là tốt (đặc biệt là các xét nghiệm đơn vị) cho một hướng dẫn rất chi tiết về cách sử dụng nó. Bạn sẽ cần phải biết IP của mỗi thiết bị cần thiết để kết nối với nhau.

Các vấn đề liên quan