使用 asmack 进行 facebook 聊天,用户状态更改延迟
我正在使用 asmack 库创建一个 Facebook 聊天客户端。创建连接、检索联系人、建立聊天,一切都很顺利。然而,当用户离线时,需要一段时间(大约一分钟左右)我的
状态改变
执行RosterListener 中的 方法。当用户上线时,presenceChanged 方法几乎立即执行。我使用的代码只是一个简单的 RosterListener:
roster.addRosterListener(new RosterListener() {
// 忽略的事件
public void EntryAdded(集合地址){}
public void EntryDeleted(集合地址){}
public void itemsUpdated(集合地址){}
公共无效存在改变(存在存在){
//做一些事情来添加/删除列表中的联系人
} });
这与 Facebook 有关吗?还是Smack相关?有什么解决方法吗?
I am creating a facebook chat client using asmack library. Creating a connection, retrieval of contacts, establishing a chat, everything goes fine. However, when a user goes offline, it takes a while (about a minute or so) before my
presenceChanged
method in the RosterListener is executed. When a user goes online, presenceChanged method is executed almost immediately. Code I am using is just a simple RosterListener:
roster.addRosterListener(new RosterListener() {
// Ignored events
public void entriesAdded(Collection addresses) {}
public void entriesDeleted(Collection addresses) {}
public void entriesUpdated(Collection addresses) {}
public void presenceChanged(Presence presence) {
//do something to add/remove contact from list
}
});
Is this something Facebook related? Or Smack related? Is there any workaround for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在 android 中使用 asmack 使用我自己的 openfire 服务器,并且存在工作正常。我认为它有点与 Facebook 相关,因为即使在 Facebook 网站上,有时你会看到一个人在线并开始聊天,它最终会将状态更改为离线。
尝试删除或添加好友,看看您的名册是否有效,并在更新的方法输入中显示日志。如果条目立即更新,则意味着这是与 Facebook 相关的问题。
I am using asmack in android using my own openfire server and the presence works fine. I think its kinda facebook related because even on facebook website sometime it happens that you see a person online and start a chat, it eventually changes the status to offline.
Try removing or adding a friend to see if you roster works, show a log in the method enteries updated. if the entries are instantly updated than it means that this is a facebook related issue.