Pusher-соединение — socketId имеет значение null

Pusher pusher = new Pusher(app key);  
String socketId = pusher.getConnection().getSocketId();

socketId имеет значение null при попытке подключения к толкателю.

URI, который клиент Pusher использует для вызова веб-сокета,

ws://ws.pusherapp.com:80/app/{app Key}?client=java-client&protocol=5&version=0.3.3

Это возвращает идентификатор сокета NULL

Но если я устанавливаю соединение через веб-сокет с помощью тестового клиента, использующего тот же URI, я получаю действительный идентификатор сокета. Что я делаю не так?


person user3451476    schedule 12.06.2015    source источник


Ответы (1)


socketId не будет установлен до тех пор, пока соединение не будет установлено. Пожалуйста, ознакомьтесь с методом интерфейса onConnectionStateChange здесь: https://github.com/pusher/pusher-websocket-java#api-overview

Вот код, обновленный специально для получения socketId:

// Create a new Pusher instance
Pusher pusher = new Pusher(YOUR_APP_KEY);

pusher.connect(new ConnectionEventListener() {
    @Override
    public void onConnectionStateChange(ConnectionStateChange change) {
        String socketId = pusher.getConnection().getSocketId();
        System.out.printLn("The socketId is: " + socketId);
    }

    @Override
    public void onError(String message, String code, Exception e) {
        System.out.println("There was a problem connecting!");
    }
}, ConnectionState.Connected);
person leggetter    schedule 13.06.2015