0

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

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

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

<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 流量,但它是加密/压缩/二进制的,所以我看不到它正在发送什么样的包。

4

1 回答 1

1

参见XEP-0045 的第 7.2.2节,特别是示例 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

于 2011-06-22T06:23:32.863 回答