连接时,iOS的XMPP框架非常慢

时间:2012-08-30 14:17:42

标签: ios xmpp ejabberd xmppframework

我目前正在开发一个我正在使用XMPP框架构建的聊天客户端。我已经探索了演示应用程序,我注意到当我输入用户名/密码时,需要很长时间(大约15秒)来接收连接并验证回调。

为什么登录和验证需要这么长时间?是否有可能加快速度?例如,Whatsapp或iChat也在使用xmpp,速度非常快。

我在运行10.8和xCode 4.4的Mac上使用ejabberd作为XMPP服务器。

提前致谢!

3 个答案:

答案 0 :(得分:1)

不确定您的情况,但有些客户在执行服务器域的DNS查找时会出现这种延迟。工作流程首先按照XMPP规范的预期搜索SRV记录。如果域没有SRV记录,则回退并尝试在预期的5222端口直接连接到域。但是首先尝试使用SRV然后回退的程序可能会消耗几秒钟 如果是这种情况,您可以将客户端配置为连接到服务器而不进行SRV查找,或者正确设置域的SRV记录。

答案 1 :(得分:1)

SRV查找会占用您面临问题的时间

通过设置[xmppStream setHostName: @"******"];

解决此问题

下面有更多解释

  • 此hostName属性是可选的。
  • 如果你没有设置hostName,那么框架将遵循使用jid域的xmpp规范。
  • 也就是说,它首先进行SRV查找(在xmpp RFC中指定)。
  • 如果失败,它将回退到只是尝试连接到jid的域。

答案 2 :(得分:0)

跟进电子邮件主题我同意ppolv,DNS超时可能与此有关。您是否为您的域配置了SRV条目?他们是对的吗?如果您转储Psi和Trillian生成的流量,您是否看到它们之间的DNS请求存在差异?