• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-12 18:55:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

<iq type="set" id="8FF7E518-E518-4A98-B122-914A8345C638" to="[email protected]/Spark 2.6.3" from="[email protected]/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="[email protected]/b79f10d5" from="[email protected]/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="[email protected]/Spark 2.6.3" from="[email protected]/b79f10d5"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>

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

- (id)initWithStreamXMPPStream *)stream toJIDXMPPJID *)aJid sidNSString *)sid

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

提前致谢。



Best Answer-推荐答案


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

请参阅 link

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap