【发布时间】:2011-07-11 14:16:53
【问题描述】:
我知道之前有人问过这个问题,但 mschonaker here 只给出了部分回复。在我的网站上,用户可以将人员添加到他们的名单中,然后好友必须接受,最后他们被连接。第一人称(用户a)使用著名的
roster.createEntry(jid, name, groups);
这行得通并在他的名单中添加一个条目,但后来我对该怎么做有点困惑:
如何在另一端接收请求?我尝试实现一个 PacketListener,覆盖 processPacket() 并检查哪些类型是 Presence.Type.subscribe 或 Presence.Type.subscribed 的数据包,但它似乎只为用户 a 触发,而不是应该监听的那个订阅 - 用户 b。
那么,我有另一个函数可以在登录时查找所有请求,所以如果我再次登录我会看到请求,但我该如何接受呢?起初,我认为用户 b 也应该在他的名册中添加用户 a
roster.createEntry(jid, name, groups);
但这没有用,什么也没有发生。我也试过了
Presence subscribed = new Presence(Presence.Type.subscribed);
subscribed.setTo(jid);
xMPPConnection.sendPacket(subscribed);
但也没有用。我确信一定有一个好的和简单的方法来做到这一点,但到目前为止我还没有在任何地方找到它,一次尝试一件事让我很头疼。有谁知道这个的正确流程?提前致谢!
【问题讨论】:
-
我也遇到了同样的问题,请您帮忙解决一下