在iOS应用中使用XMPP创建聊天室时出现问题

时间:2011-06-21 06:40:09

标签: iphone xmpp chatroom

我有一个iphone应用程序,我想使用聊天室。我已经安装了一个XMPP服务器(ejabberd),并从谷歌代码(http://code.google.com/p/xmppframework/)下载了适用于iOS的XMPP框架。服务器和客户端按预期工作,因为我可以登录并在两个用户之间发送聊天消息。

但是,当我尝试使用XMPPRoom类的createOrJoinRoom方法创建聊天室时(在XEP-0045中),我没有收到服务器的任何回复,也没有创建聊天室。

我已经调试过,看看是什么类型的包发送到服务器,它看起来像这样:

<presence from="test2@beta.bogus.net/mynick" to="muumit15@conference.beta.bogus.net">
  <x xmlns="http://jabber.org/protocol/muc"/>
</presence>

我没有收到任何错误消息,但未创建聊天室(muumit15)。同时我可以使用例如Adium客户端创建聊天室并且成功。已配置服务器,以便每个用户都有权创建聊天室。

有什么想法吗?我甚至试图嗅探Adium客户端发送的TCP / IP流量但是加密/压缩/二进制,所以我看不到它发送的是什么类型的包。

1 个答案:

答案 0 :(得分:1)

参见7.2.2 of XEP-0045部分,特别是例18:

<presence
    from='hag66@shakespeare.lit/pda'
    to='coven@chat.shakespeare.lit/thirdwitch'>
  <x xmlns='http://jabber.org/protocol/muc'/>
</presence>

请注意,to地址必须包含资源,而您的地址则不包含。资源是/之后的字符串,用作房间中的昵称。有关XMPP地址格式的详细信息,请参阅RFC 6122