0

我有点困惑,在文档中找不到答案。我正在为 Android 开发一个简单的聊天应用程序。我已经创建了一个组(muc)并且一切正常,但是我每次打开应用程序时都必须继续调用 join() 吗?

我注意到它不能正常工作。不明白为什么,因为服务器知道我的 jabberID 连接到这个 muc。

希望我的问题足够清楚。谢谢。

4

2 回答 2

2

A(我希望)完整的解释:简短的回答是肯定的。

当在您的服务器上创建了一个持久房间,并且您注销或退出房间时,您必须每次重新加入。注销或连接丢失是显而易见的,但是当您退出(离开)房间时,您也不会直接从房间收到消息(即使您仍然连接到服务器),服务器知道您的 id隶属于该 MUC(例如作为成员),但您不在其中,有关更多信息,请参阅有关 MUC 的 XEP,并阅读有关您的特定服务器如何在您的服务器文档中实现它的信息(可能将消息保存在房间到离线用户,或类似的东西)。

这基本上就是当您进出群聊时在 WhatsApp 中发生的事情,但他们也有自己的自定义方式(他们在基本 xmpp 服务器之上构建的层)让您了解未读消息,其中包括服务(您可以在手机中的常规设置->应用程序中看到它)推送通知。

于 2015-06-10T08:11:16.780 回答
0
  1. 创建服务
  2. 在其中添加您的 xmpp 代码,例如登录、一对一聊天、MUC 聊天。

因此,即使您的应用关闭服务也将保留在后台,并且您将始终连接到聊天室。

于 2015-06-08T09:08:53.730 回答