gpt4 book ai didi

ios - 使用 XMPPFramework 和 XMPPSiFileTransfer 在 iOS 中进行文件传输

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:28 26 4
gpt4 key购买 nike

我无法使用 iOS XMPPFramework(XMPPSiFileTransfer) 实现文件传输功能。我尝试了不同的方式,最后我可以发送一个文件传输请求并且接收者收到了请求。但即使他们接受了,似乎也没有任何改变。我试图向 Spark/Windows 机器和 iMessage/Mac 中的收件人发送请求。在 XMPPSiFileTransfer 类本身中,我发现开发人员评论如下"当我们是发起者时则相反。我们通过调用 initiateFileTransferTo:withData 发送请求,然后使用 http://jabber.org/protocol/si 的 si 命名空间等待 iq 结果,发送 disco#info 响应,打开 SOCKS5套接字,然后等待另一端连接开始传输。"

当我通过调用 initiateFileTransferTo 方法发送请求时,SiFileTranfer 生成以下 XML:

<iq type="set" id="8FF7E518-E518-4A98-B122-914A8345C638" to="rajesh.rajan@chat.speridian.com/Spark 2.6.3" from="sreelash.s@chat.speridian.com/b79f10d5"><si xmlns="http://jabber.org/protocol/si" id="967DAA7A-F159-44D8-AD31-7C532AB459AD" mime-type="image/png" profile="http://jabber.org/protocol/si/profile/file-transfer"><file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="photoB29D9F41-EC41-41C8-AF6D-EA5E23FF906E.png" size="740"/><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></field></x></feature></si></iq>

然后我在 didRecieveIq 上得到了如下响应,如开发者评论中所述。

<iq xmlns="jabber:client" id="8FF7E518-E518-4A98-B122-914A8345C638" to="sreelash.s@chat.speridian.com/b79f10d5" from="rajesh.rajan@chat.speridian.com/Spark 2.6.3" type="result"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq>

当我在 didRecieveIq 中得到带有 si 命名空间的结果时,disco#info 发送如下

<iq type="get" id="12A7231B-D50A-469E-96B4-BD39278B77EF" to="rajesh.rajan@chat.speridian.com/Spark 2.6.3" from="sreelash.s@chat.speridian.com/b79f10d5"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

并尝试通过调用以下方法打开 SOCKS5 套接字

- (id)initWithStream:(XMPPStream *)stream toJID:(XMPPJID *)aJid sid:(NSString *)sid

但我收到“SOCKS5 连接失败!”信息。我无法确定问题出在哪里。谁能帮我解决这个问题?

提前致谢。

最佳答案

您需要在 TURNSocket 类 XEP-0065 中进行一些修改。 试试这个 xmpp

引用这个link

关于ios - 使用 XMPPFramework 和 XMPPSiFileTransfer 在 iOS 中进行文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824894/

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