通过HTTP代理的iOS XMPP聊天
我有一个iPhone应用程序与2个服务工作:
- 使用REST服务通过http使用AFNetworking
- 通过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不支持它,您可能需要查找/写入不同的库