Pusher Android дважды подписался на канал

Я новичок в Android и Pusher.

Мы только что перенесли Pusher в родное приложение Android. Однако столкнулись с проблемой с подписанным Каналом Дважды(думаю подключение тоже будет дважды).

Проверено, что мы просто создаем объект толкателя под onCreate и устанавливаем соединение.

Мы также добавили pusher.subscribe в onResume и отмену подписки в onPause, onDestroy. Как сказано в документе, при двойной подписке будет выдано исключение.

Когда я запускаю приложения. Я проверил журналы с прикрепленным сообщением об отладке. Показаны два соединения.

Консоль отладки Pusher

Прикрепленный файл - мой MainApp. Кто-нибудь может помочь? Большое спасибо. :) ..... * добавлено все подписавшиеся и отписавшиеся попробуйте .. ловите .. исключение сейчас.

Спасибо всем. Так как мы работаем над этим вопросом почти 5 дней...... Спасибо всем снова и снова.

12 августа 2013 г. Обновление: Привет всем, я просто исправляю журнал и повторно тестирую программу. Вот мой результат:

Журнал из веб-службыЯ проверил, что соединение установлено только один раз. Однако консоль отладки толкателя показывает мне:

Консоль отладки Pusher- Канал: 2235d980e0621a54

Это довольно странно. Мы все еще изучаем этот вопрос.

Обновленный новый источник находится здесь: Последний источник — MainActivity


person Erwin    schedule 08.08.2013    source источник


Ответы (1)


Несколько уточнений:

  1. Когда вы создаете новый экземпляр Pusher и вызываете connect, вы устанавливаете соединение.
  2. Когда вы звоните pusher.subscribe('channel');, вы создаете подписку на канал, а не соединение

Предоставленный вами код подписывается на один и тот же канал как в onCreate, так и в onResume. Вам не нужно повторно подписываться на onResume, так как библиотека сделает это за вас. Этот существующий код может привести к возникновению исключения. Итак, вы можете удалить код onResume и устранить эту проблему.

Я не уверен, почему вы видите две связи. Не могли бы вы предоставить подробную информацию о клиентском журнале из вашего приложения?

person leggetter    schedule 08.08.2013
comment
Привет, спасибо за ваш ответ. :). Мы создаем новый экземпляр Pusher и вызываем соединение в onCreate. Что достигается с помощью ExpectedConnectionState() также в onConnectionStateChange(). - person Erwin; 08.08.2013
comment
Сначала я попытаюсь удалить onResume и обновлю здесь. Большое спасибо за вашу помощь ^^ - person Erwin; 08.08.2013
comment
Привет, мой пост обновлен. Большое спасибо за вашу [@leggetter] помощь. - person Erwin; 12.08.2013
comment
@ Эрвин, ты докопался до этого? - person leggetter; 22.09.2013