【发布时间】:2018-11-09 23:24:51
【问题描述】:
我正在使用 Smack for Android 创建一个简单的聊天客户端。我使用 ejabberd 作为本地 XMPP 服务器。基本功能似乎工作得很好:我可以连接、接收和发送消息。对于测试,我使用 Gajim/PSI 作为现成的 XMPP 客户端。
我唯一的问题是 Android 用户在 Gajim 和 PSI 中总是被列为离线。由于可以交换消息,Android 用户显然已连接,并且 ejabberd Web 管理界面将两个用户都列为已连接。
在我的 Andoird 代码中,连接并登录后,我会发送这样的出席信息节:
...
stanza = new Presence(Presence.Type.available);
stanza.setStatus("online");
this.mConnection.sendStanza(stanza);
...
我在 ejabberd 中使用实时模式看到了这节。我认为这会告诉 Gajim/PSI 用户在线。还是要求 Android 用户首先需要将 Gajim/PIS 用户明确添加到其名册中?我目前没有这样做。
【问题讨论】: