首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用TurnSocket (XEP-0065: SOCKS5字节流)连接?XEP-0096: SI文件传输?[套接字writeData]?

如何使用TurnSocket (XEP-0065: SOCKS5字节流)连接?XEP-0096: SI文件传输?[套接字writeData]?
EN

Stack Overflow用户
提问于 2012-06-13 15:24:44
回答 1查看 2.8K关注 0票数 7

我试图通过iOS上的XMPP使用XMPPFramework和OpenFire进行文件传输。我的代码的基础来自于下面的教程。我有一个成功的TurnSocket (XEP-0065: SOCKS5 Bytestreams)连接,但是我无法使用它发送数据。我有两个注意事项,这两个问题我都被困住了: 1.调用套接字writeData,2.使用'XEP-0096: SI文件传输‘。

可能的解决方案1-在我的应用程序委托中调用套接字writeData我有一个didSucceed方法。我可以这样叫套接字writeData ..。

代码语言:javascript
复制
- (void)turnSocket:(TURNSocket *)sender didSucceed:(GCDAsyncSocket *)socket {

    NSLog(@"TURN Connection succeeded!");

    [socket writeData:myData withTimeout:60.0f tag:0]; 
    [turnSockets removeObject:sender];
}

6月14日更新:这是对的吗?如果是的话,其他用户是如何读取数据的?我试着实现

代码语言:javascript
复制
- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag

但它从来没有被召唤过。我如何确保它被调用?

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

例如:

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2014-07-03 06:51:04

将XEP-0096用于FileTransfer而不是XEP-0065只适用于IOS,要成功传输,您需要用户@jabber.com/2526318749013466431等接收器的当前资源id来与代理IP和jabber服务器的端口建立连接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11018208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档