我目前正在为Android构建聊天应用程序。
XMPP Server: MongooseIM.
XMPP Client: Smack 4.1.5.
目前,已登录的用户不断从他的烘焙伙伴那里获得状态更新。我希望仅在应用程序打开时接收这些状态更新,并在应用程序关闭时阻止它们。有没有办法实现这种行为?我曾尝试使用隐私列表,但没有运气。
这是我到目前为止所尝试过的。
PrivacyListManager privacyManager = PrivacyListManager.getInstanceFor(mXMPPConnection);
ArrayList privacyItems = new ArrayList();
PrivacyItem item = new PrivacyItem(PrivacyItem.Type.subscription, "to", false, 1);
item.setFilterPresenceIn(true);
privacyItems.add(item);
privacyManager.createPrivacyList("subscription", privacyItems);
答案 0 :(得分:0)
我假设您希望保持连接以接收消息,但希望限制在线流量。
ejabberd支持XEP-0352 Client State Indication,这正是如此。进入后台时,将客户端切换到非活动模式,并且不会发送状态更新。返回前台时,将CSI状态切换为活动状态,您将收到相关的状态更新,通过删除冗余的过时状态信息进行优化。
您可以查看ejabberd文档:mod_client_state