agsXMPP有问题。我想做的是连接到openfire服务器作为“User1”(例如),检查我的名单中的哪些用户在线并返回ONLINE用户名的集合。 问题是,OnPresence事件是最后一个事件(基于我的研究),它发生在每个在线用户。但是我怎么知道它何时完成了对所有在线用户的检查,所以我终于可以返回我的ONLINE集合了? 是否有类似OnPresenceEnd事件?
请帮忙!
答案 0 :(得分:0)
没有类似的东西。 xmpp服务器在其自己的节中发送每个存在。并且XMPP协议中没有任何内容可以告诉您现在已收到所有初始状态。
XMPP是一种异步协议。在可能的情况下,保持您的代码也是异步的,并在每次OnPresence事件后更新状态。
答案 1 :(得分:0)
xcc.OnRosterItem + = new agsXMPP.XmppClientConnection.RosterHandler(method_name1); xcc.OnRosterEnd + = new ObjectHandler(method_name2); < --- 这就是你需要的