WhatsApp хранит пароль?? Или их сокеты всегда открыты?

Я пытаюсь понять, как автоматически переподключить соединение сокета ejabberd. Как WhatsApp, Facebookmessenger и т. д.

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

1.) Чтобы сохранить JID и пароль (но это нехорошо по соображениям безопасности)

2.) Настроить незанятое соединение ejabberd, чтобы никогда не отключать соединение (но это использует довольно много ресурсов)

Есть ли другая возможность автоматически переподключить пользователя к серверу?


person John    schedule 14.09.2015    source источник


Ответы (1)


Вы не можете оставаться на связи все время на мобильном телефоне. Так обстоит дело сегодня на iOS и будет то же самое на Android с Android Marshmallow.

Итак, вам необходимо пройти аутентификацию и сохранить учетные данные в той или иной форме. Это не обязательно должен быть пароль. Например, если у вас есть собственный модуль аутентификации в ejabberd, это может быть токен.

Обратите внимание, что вы также можете хранить конфиденциальные данные в зашифрованном виде на мобильном телефоне. И Apple, и Google предоставляют API цепочки для ключей, предназначенный для защиты учетных данных. Например, он недоступен в открытом виде из резервной копии.

person Mickaël Rémond    schedule 14.09.2015
comment
Круто, спасибо, я думаю, мне просто нужно будет зашифровать учетные данные, а затем, когда устройство обнаружит, что оно отключено, я просто снова вызову функцию подключения с учетными данными. - person John; 14.09.2015
comment
Почему это изменится с Marshmallow? - person Flow; 14.09.2015
comment
@Flow Вам следует изучить новую функцию управления питанием, которая называется App Standby. Когда устройство не подключено и приложение не используется, ему не будет разрешен доступ к сети: developer.android.com/preview/features/power-mgmt.html - person Mickaël Rémond; 14.09.2015