【问题标题】:iOS XMPP chat through HTTP proxyiOS XMPP 通过 HTTP 代理聊天
【发布时间】:2014-05-31 12:59:12
【问题描述】:

我有一个适用于 2 项服务的 iPhone 应用程序:

  1. 通过 http 使用 REST 服务 - 使用 AFNetworking
  2. 通过 TCP 进行 XMPP 聊天 - 使用 XMPPFramework https://github.com/robbiehanson/XMPPFramework

我的 iPhone 使用带代理的公司网络,所以我在设置中设置了 HTTP 代理 http://qblx.co/1eJ9TwI

使用此代理设置,对 REST 服务的所有请求都通过此代理。 但是,我的应用程序直接连接到聊天服务器,没有代理。

如何使聊天通过代理工作? 如我所见,XMPPFramework 使用 GCDAsyncSocket 作为传输https://github.com/robbiehanson/CocoaAsyncSocket

您对如何通过代理设置聊天有什么建议吗?

【问题讨论】:

    标签: ios http proxy xmpp


    【解决方案1】:

    XMPP 默认使用普通 TCP 套接字连接,无法通过 HTTP 代理进行路由。你可以:

    • 如果您的代理支持 HTTPS/隧道,请尝试将 443 端口用于您的 XMPP 服务,或将 443 端口转发到路由器上的默认 XMPP 服务端口 (5222)。
    • 如果您的代理支持 SOCKS,请尝试使用ProxyKit,但可能需要修改 XMPPFramework 代码
    • 您可以尝试将 XMPP 与 HTTP 或 Websocket 传输一起使用,但 XMPPFramework 不支持它,您可能需要查找/编写不同的库

    【讨论】:

    • 谢谢,这是一个很好的答案。关于第二个 - 是否有可能拥有同时支持 HTTP 和 SOCKS 的代理?我认为这是最好的解决方案。您能否提供更多关于第一个的信息 - 我应该在每一侧做什么?
    • 嘿 @vitalster 我可以通过用户注册 HTTPS url 链接和 XMPP 服务器登录(代码设置流)来检查这两个东西...因为我想直接与我联系人的其他用户聊天...是有可能吗?...你能给它一些提示或建议吗?
    猜你喜欢
    • 2013-08-14
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多