imToken v20.9.11.17版本的 MD5 值为:f7135d2ec367bd3b61d8914bc13d03cb
以下内容为反编译后的 PresenceChannelExampleApp.java 源代码,内容仅作参考
package com.pusher.client.example;
import com.pusher.client.Pusher;
import com.pusher.client.PusherOptions;
import com.pusher.client.channel.PresenceChannel;
import com.pusher.client.channel.PresenceChannelEventListener;
import com.pusher.client.channel.PusherEvent;
import com.pusher.client.channel.User;
import com.pusher.client.connection.ConnectionEventListener;
import com.pusher.client.connection.ConnectionState;
import com.pusher.client.connection.ConnectionStateChange;
import com.pusher.client.util.HttpAuthorizer;
import java.util.Set;
import org.koin.core.instance.InstanceFactory;
public class PresenceChannelExampleApp {
private String authorizationEndpoint = "http://localhost:3030/pusher/auth";
private final PresenceChannel channel;
private String channelName;
private String channelsKey;
private String cluster;
private String eventName;
public static void main(String[] strArr) {
new PresenceChannelExampleApp(strArr);
}
private PresenceChannelExampleApp(String[] strArr) {
this.channelsKey = "FILL_ME_IN";
this.channelName = "my-channel";
this.eventName = "my-event";
this.cluster = "eu";
int length = strArr.length;
if (length != 1) {
if (length != 2) {
if (length != 3) {
if (length == 4) {
this.cluster = strArr[3];
}
Pusher pusher = new Pusher(this.channelsKey, new PusherOptions().setUseTLS(true).setCluster(this.cluster).setAuthorizer(new HttpAuthorizer(this.authorizationEndpoint)));
pusher.connect(new ConnectionEventListener() {
@Override
public void onConnectionStateChange(ConnectionStateChange connectionStateChange) {
System.out.println(String.format("Connection state changed from [%s] to [%s]", connectionStateChange.getPreviousState(), connectionStateChange.getCurrentState()));
}
@Override
public void onError(String str, String str2, Exception exc) {
System.out.println(String.format("An error was received with message [%s], code [%s], exception [%s]", str, str2, exc));
}
}, new ConnectionState[0]);
this.channel = pusher.subscribePresence(this.channelName, new PresenceChannelEventListener() {
@Override
public void onSubscriptionSucceeded(String str) {
System.out.println(String.format("Subscription to channel [%s] succeeded", str));
}
@Override
public void onEvent(PusherEvent pusherEvent) {
System.out.println(String.format("Received event [%s]", pusherEvent.toString()));
}
@Override
public void onAuthenticationFailure(String str, Exception exc) {
System.out.println(String.format("Authentication failure due to [%s], exception was [%s]", str, exc));
}
@Override
public void onUsersInformationReceived(String str, Set<User> set) {
System.out.println("Received user information");
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
@Override
public void userSubscribed(String str, User user) {
System.out.println(String.format("A new user has joined channel [%s]: %s", str, user.toString()));
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
@Override
public void userUnsubscribed(String str, User user) {
System.out.println(String.format("A user has left channel [%s]: %s", str, user));
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
}, this.eventName);
while (true) {
try {
Thread.sleep(1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
this.eventName = strArr[2];
}
this.channelName = strArr[1];
}
this.channelsKey = strArr[0];
Pusher pusher2 = new Pusher(this.channelsKey, new PusherOptions().setUseTLS(true).setCluster(this.cluster).setAuthorizer(new HttpAuthorizer(this.authorizationEndpoint)));
pusher2.connect(new ConnectionEventListener() {
@Override
public void onConnectionStateChange(ConnectionStateChange connectionStateChange) {
System.out.println(String.format("Connection state changed from [%s] to [%s]", connectionStateChange.getPreviousState(), connectionStateChange.getCurrentState()));
}
@Override
public void onError(String str, String str2, Exception exc) {
System.out.println(String.format("An error was received with message [%s], code [%s], exception [%s]", str, str2, exc));
}
}, new ConnectionState[0]);
this.channel = pusher2.subscribePresence(this.channelName, new PresenceChannelEventListener() {
@Override
public void onSubscriptionSucceeded(String str) {
System.out.println(String.format("Subscription to channel [%s] succeeded", str));
}
@Override
public void onEvent(PusherEvent pusherEvent) {
System.out.println(String.format("Received event [%s]", pusherEvent.toString()));
}
@Override
public void onAuthenticationFailure(String str, Exception exc) {
System.out.println(String.format("Authentication failure due to [%s], exception was [%s]", str, exc));
}
@Override
public void onUsersInformationReceived(String str, Set<User> set) {
System.out.println("Received user information");
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
@Override
public void userSubscribed(String str, User user) {
System.out.println(String.format("A new user has joined channel [%s]: %s", str, user.toString()));
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
@Override
public void userUnsubscribed(String str, User user) {
System.out.println(String.format("A user has left channel [%s]: %s", str, user));
PresenceChannelExampleApp.this.printCurrentlySubscribedUsers();
}
}, this.eventName);
while (true) {
Thread.sleep(1000L);
}
}
public void printCurrentlySubscribedUsers() {
StringBuilder sb = new StringBuilder("Users now subscribed to the channel:");
for (User user : this.channel.getUsers()) {
sb.append(InstanceFactory.ERROR_SEPARATOR);
sb.append(user.toString());
if (user.equals(this.channel.getMe())) {
sb.append(" (me)");
}
}
System.out.println(sb.toString());
}
}