通过HTTP代理的iOS XMPP聊天

我有一个iPhone应用程序与2个服务工作:

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

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

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

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

你有什么build议如何设置通过代理聊天?

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

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