толкатель Android onEvent не вызывается

Я использую pusher-java-client 1.0.2 (пробовал то же самое с 1.0.0). Клиент Android подписывается на канал, но события не запускаются (onEvent не вызывается). В то время как в моем клиенте js события запускаются для одних и тех же событий.

    // Create a new Pusher instance
    mPusher = new Pusher(Defines.PUSHER_APP_KEY);

    mPusher.connect(new ConnectionEventListener() {
        @Override
        public void onConnectionStateChange(ConnectionStateChange change) {
            Logger.i("pusher: State changed to " + change.getCurrentState() +
                    " from " + change.getPreviousState());
        }

        @Override
        public void onError(String message, String code, Exception e) {
            Logger.e("pusher: There was a problem connecting! msg:" + message);
        }
    }, ConnectionState.ALL);

    Channel channel = mPusher.subscribe("test_chan", new ChannelEventListener() {
        @Override
        public void onSubscriptionSucceeded(String channel) {
            Logger.i("pusher: subscribed");
        }

        @Override
        public void onEvent(String channel, String event, String data) {
            Logger.i("pusher: channel=" + channel + " event=" + " data=" + data);
        }
    }, "test_event");

вывод журнала после отправки некоторых событий:

01-03 15:47:02.884 толкатель: состояние изменено на ПОДКЛЮЧЕНИЕ с ОТКЛЮЧЕНО

01-03 15:47:04.403 толкатель: состояние изменено на ПОДКЛЮЧЕНО с ПОДКЛЮЧЕНИЯ

01-03 15:47:04.709 толкатель: подписан

По какой причине мой обратный вызов onEvent не запускается при публикации «test_event» в «test_chan»?


person Androidparanoid    schedule 03.01.2016    source источник


Ответы (1)


Вы должны добавить «клиент» перед названием события и использовать «-»

Channel channel = mPusher.subscribe("test-chan",this, "client-test-event");

Используйте ChannelEventListener со своей активностью

public class YourActivity extends AppCompatActivity implements ChannelEventListener{

...

@Override
            public void onSubscriptionSucceeded(String channel) {
                Logger.i("pusher: subscribed");
            }

            @Override
            public void onEvent(String channel, String event, String data) {
                Logger.i("pusher: channel=" + channel + " event=" + " data=" + data);
            }

}

Попробуйте реализовать так, это сработает; и дайте мне знать, если это поможет вам или нет :)

person Abdul Rizwan    schedule 20.01.2016
comment
спасибо, но нет, не работает. Я связался с pubnub и поговорил с одним из их инженеров, к сожалению, проблема еще не решена. может быть в более поздней версии. во всяком случае, я перестал пробовать pubnub на данный момент. - person Androidparanoid; 20.01.2016
comment
на самом деле сейчас я работаю над приложением для чата, и я реализовал толкатель; и у меня это работает, можете ли вы прислать мне код, тогда я смогу дать точное решение; - person Abdul Rizwan; 20.01.2016
comment
ты использовал триггер; например: PusherConfig.channel.trigger(test_event, jsonMessage); - person Abdul Rizwan; 20.01.2016
comment
эй, я нашел твою проблему; я обновил приведенный выше код; на самом деле вам нужно использовать ключ «клиент» в таких событиях, как: client-test-event - person Abdul Rizwan; 20.01.2016
comment
теперь это будет работать; пожалуйста, дайте мне знать текущий статус; :) - person Abdul Rizwan; 20.01.2016
comment
У меня не сработало, пожалуйста, опубликуйте изменения, если они работают в вашем конце - person Ramesh Bhupathi; 12.05.2016