gpt4 book ai didi

xmpp - 如何使用 TurnSocket (XEP-0065 : SOCKS5 Bytestreams) connection? XEP-0096 : SI File Transfer? [socket writeData]?

转载 作者:行者123 更新时间:2023-12-04 12:59:27 24 4
gpt4 key购买 nike

我正在尝试使用 XMPPFramework 和 OpenFire 在 iOS 上通过 XMPP 传输文件。我的代码基础来自以下 tutorial .我有一个成功的 TurnSocket (XEP-0065: SOCKS5 Bytestreams) 连接,但我不知道如何使用它来发送数据。我有两个考虑因素,我都坚持:1.调用[socket writeData]和2.使用'XEP-0096:SI文件传输'。

可能的解决方案 1 - 调用 [socket writeData]
在我的 App 委托(delegate)中,我有一个 didSucceed 方法。我可以像这样调用 [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 中使用我的成功连接? XEP-0096 docs暗示有一个“哈希”属性,但我不知道这是从哪里来的。

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

最佳答案

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

关于xmpp - 如何使用 TurnSocket (XEP-0065 : SOCKS5 Bytestreams) connection? XEP-0096 : SI File Transfer? [socket writeData]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11018208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com