Xmpp中IQ的使用,可以是阻塞形式的请求。

来源:互联网 发布:mysql jdbc url 参数 编辑:程序博客网 时间:2024/06/05 18:18
原本是一个回调的过程,需要等服务器响应数据后才能返回结果,用此种方式可以让线程停止,成为阻塞形式,一定等到返回结果后再进行下一步操作。 
参考例子可见:麻将项目,PresencePacketListener类中。
UserSearchIQ inviteToUserSearchIQ = new UserSearchIQ(uid);
        PacketCollector collector = XmppClient.getInstance().getConnection().createPacketCollector(new PacketIDFilter(inviteToUserSearchIQ.getPacketID()));
XmppClient.getInstance().sendPacket(inviteToUserSearchIQ);
UserSearchIQ response = (UserSearchIQ) collector.nextResult(SmackConfiguration.getPacketReplyTimeout());
mFriendInfo = response.getFrendInfo();
collector.cancel();
0 0