通过 XEP0065 SOCKS5 字节流代理在 smack 中传输 XMPP 文件
Posted
技术标签:
【中文标题】通过 XEP0065 SOCKS5 字节流代理在 smack 中传输 XMPP 文件【英文标题】:XMPP File transfer through XEP0065 SOCKS5 bytestream proxy in smack 【发布时间】:2012-03-11 05:19:12 【问题描述】:我正在使用 smack 库来处理 XMPP/Jabber 连接。我知道 smack 支持 XEP-0065,但我没有看到指定首选字节流代理主机的选项。对于像 Jabber.org 这样的服务器,这是必要的,因为服务发现 (proxy.eu.jabber.org) 中提供的服务器不起作用。此外,一些服务器没有列出服务发现的代理。如何指定首选的 SOCKS5 字节流代理进行 smack?
(澄清:这不是让 smack 连接到代理服务器以启动其 XMPP 会话;这纯粹是用于 NAT 阻止 XMPP 文件传输的场景。)
【问题讨论】:
【参考方案1】:我做了一些源代码潜水,终于找到了代码选择代理的位置。这在r13041 或Socks5BytestreamManager.java 中是不可能的:在establishSession(String targetJID, String sessionID)
中,它从XMPP 服务器枚举代理并立即继续收集代理的主机名和端口。没有将自定义代理主机添加到列表中的规定。
【讨论】:
以上是关于通过 XEP0065 SOCKS5 字节流代理在 smack 中传输 XMPP 文件的主要内容,如果未能解决你的问题,请参考以下文章