Xmpp 如何使用旋转插座(XEP-0065:SOCKS5 ByTestStreams)连接?XEP-0096:SI文件传输?[套接字写入数据]?

Xmpp 如何使用旋转插座(XEP-0065:SOCKS5 ByTestStreams)连接?XEP-0096:SI文件传输?[套接字写入数据]?,xmpp,file-transfer,asyncsocket,socks,xmppframework,Xmpp,File Transfer,Asyncsocket,Socks,Xmppframework,我正在尝试使用XMPPFramework和OpenFire在iOS上通过XMPP进行文件传输。我的代码的基础来自以下内容。我有一个成功的TurnSocket(XEP-0065:SOCKS5 ByTestStreams)连接,但我无法使用它发送数据。我有两个考虑因素,这两个我都坚持:1。调用[socket writeData]和2。使用“XEP-0096:SI文件传输” 可能的解决方案1-调用[socket writeData] 在我的应用程序委托中,我有一个didcessfuel方法。我可以这样

我正在尝试使用XMPPFramework和OpenFire在iOS上通过XMPP进行文件传输。我的代码的基础来自以下内容。我有一个成功的TurnSocket(XEP-0065:SOCKS5 ByTestStreams)连接,但我无法使用它发送数据。我有两个考虑因素,这两个我都坚持:1。调用[socket writeData]和2。使用“XEP-0096:SI文件传输”

可能的解决方案1-调用[socket writeData] 在我的应用程序委托中,我有一个didcessfuel方法。我可以这样调用[socket writeData]

- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket {

    NSLog(@"TURN Connection succeeded!");

    [socket writeData:myData withTimeout:60.0f tag:0]; 
    [turnSockets removeObject:sender];
}
6月14日更新:是否正确?如果是,其他用户如何读取数据?我已经试过了

- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag
但它从未被呼叫过。我如何确保它被调用

可能的解决方案2-XEP-0096:SI文件传输 我是否需要使用XEP-0096:SI文件传输?如果是这样,我如何在需要形成的XEP-0096 XML中使用成功的连接?这意味着有一个“hash”属性,但我不知道这是从哪里来的

e、 g


这是一个测试。如果这是一个真实的文件。。。
http://jabber.org/protocol/bytestreams
http://jabber.org/protocol/ibb

将XEP-0096用于文件传输,而不是XEP-0065。它仅适用于IOS,要成功传输,您需要接收方的当前资源id,如user@jabber.com/2526318749013466431,以建立与代理IP和端口的连接
jabber服务器的

散列是文件内容的MD5。请参阅XEP-0096的第3节。感谢您的响应流程。然而,即使我把散列放在那里,我也不太明白发送这一节将如何开始文件传输。我想我需要用一下插座吗?@AndyA,你最终能弄明白吗?如果是的话,你介意分享一下你是如何让它工作的吗?我没有弄明白,没有。恐怕我已经有一年多没有参与这个项目了。
<iq type='set' id='offer1' to='receiver@jabber.org/resource'>
  <si xmlns='http://jabber.org/protocol/si' 
      id='a0'
      mime-type='text/plain'
      profile='http://jabber.org/protocol/si/profile/file-transfer'>
    <file xmlns='http://jabber.org/protocol/si/profile/file-transfer'
          name='test.txt'
          size='1022'
          hash='552da749930852c69ae5d2141d3766b1'
          date='1969-07-21T02:56:15Z'>
      <desc>This is a test. If this were a real 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>