XMPP系列(三)---获取好友列表、加入好友
时间: 2023-12-03 16:46:48 浏览: 30
获取好友列表和加入好友都是 XMPP 协议中常见的操作,可以使用 XMPP 客户端库来实现。
获取好友列表:
获取好友列表需要先建立与服务器的连接,然后向服务器发送获取好友列表的请求,服务器会返回当前用户的好友列表。
在使用 XMPP 客户端库时,可以通过调用 `getRoster()` 方法来获取好友列表:
```java
Roster roster = connection.getRoster();
Collection<RosterEntry> entries = roster.getEntries();
for (RosterEntry entry : entries) {
System.out.println(entry.getName() + " (" + entry.getUser() + ")");
}
```
这段代码会输出当前用户的好友列表,每个好友的名称和 JID。
加入好友:
加入好友需要知道好友的 JID,然后向服务器发送加入好友的请求,服务器会向好友发送一个订阅请求,好友同意后就成为了当前用户的好友。
在使用 XMPP 客户端库时,可以通过调用 `sendPacket()` 方法来发送加入好友的请求:
```java
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo(buddyJID);
connection.sendPacket(subscribe);
```
这段代码会向好友发送一个订阅请求,其中 `buddyJID` 是好友的 JID。
好友同意后,当前用户会收到一个订阅通知,可以通过监听 `RosterListener` 的 `entriesAdded()` 方法来处理:
```java
roster.addRosterListener(new RosterListener() {
public void entriesAdded(Collection<String> addresses) {
for (String address : addresses) {
System.out.println("New buddy added: " + address);
}
}
// ...
});
```
这段代码会在当前用户的好友列表中添加新的好友,并输出好友的 JID。