Presence channels are authorized private channels that expose information about currently subscribed users. Use subscribePresence and implement PresenceChannelEventListener to handle users joining (userSubscribed) or leaving (userUnsubscribed), as well as receiving the initial list of users (onUsersInformationReceived).
PresenceChannel channel = pusher.subscribePresence("presence-channel",
new PresenceChannelEventListener() {
@Override
public void onUsersInformationReceived(String channelName, Set<User> users) {
for (User user : users) {
userSubscribed(channelName, user);
}
}
@Override
public void userSubscribed(String channelName, User user) {
System.out.println(
String.format("A new user joined channel [%s]: %s, %s",
channelName, user.getId(), user.getInfo())
);
if (user.equals(channel.getMe())) {
System.out.println("me");
}
}
@Override
public void userUnsubscribed(String channelName, User user) {
System.out.println(
String.format("A user left channel [%s]: %s %s",
channelName, user.getId(), user.getInfo())
);
}
// Other ChannelEventListener methods
});