Я хочу использовать соединение Pusher Websocket с использованием официальной библиотеки Java. Я запустил основные функции, такие как подключение к службе данных и получение сообщений. Однако мне трудно реализовать другие функции, такие как чтение статуса соединения. Возможно, вы сможете помочь мне, ответив на некоторые из этих вопросов:
1) Что происходит при запуске пушера и подключении его к сервису (пушер.подключение())? Подключенный толкатель работает в отдельном потоке?
2) Как я могу получить текущее состояние моего push-соединения?
3) Если мой пушер обновляет объект, который параллельно используется другими сервисами, могут ли это вызвать проблемы?
4) Как я могу обрабатывать ошибки/исключения? Пока я ничего не получил, будет ли ошибка выглядеть как обычное исключение или она обрабатывается по-другому?
Спасибо!
Ниже я скопировал свой текущий код. Обратите внимание, что цикл while внизу используется только для тестирования, чтобы код продолжал работать.
import com.pusher.client.Pusher;
import com.pusher.client.channel.Channel;
import com.pusher.client.channel.ChannelEventListener;
import com.pusher.client.channel.SubscriptionEventListener;
import com.pusher.client.connection.ConnectionEventListener;
import com.pusher.client.connection.ConnectionState;
import com.pusher.client.connection.ConnectionStateChange;
public class Testing {
public static void main(String[] args) throws Exception {
// Create a new Pusher instance
Pusher pusher = new Pusher("PusherKey");
pusher.connect(new ConnectionEventListener() {
@Override
public void onConnectionStateChange(ConnectionStateChange change) {
System.out.println("State changed to " + change.getCurrentState() +
" from " + change.getPreviousState());
}
@Override
public void onError(String message, String code, Exception e) {
System.out.println("There was a problem connecting!");
}
}, ConnectionState.ALL);
// Subscribe to a channel
Channel channel = pusher.subscribe("channel", new ChannelEventListener() {
@Override
public void onSubscriptionSucceeded(String channelName) {
System.out.println("Subscribed!");
}
@Override
public void onEvent(String channelName, String eventName, String data) {
System.out.println("desilo se");
}
});
// Bind to listen for events called "my-event" sent to "my-channel"
channel.bind("my-event", new SubscriptionEventListener() {
@Override
public void onEvent(String channel, String event, String data) {
System.out.println("Received event with data: " + data);
}
});
while(true){
try {
Thread.sleep(1000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
}
}