我有一个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流量但是加密/压缩/二进制,所以我看不到它发送的是什么类型的包。
答案 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。