Всем привет.

В качестве предисловия давайте проведем небольшой экперимент — возьмем 2 смартфона с установленными на них какими-нибудь популярными мессенджерами — WhatsApp, Viber, Telegram — не важно. Теперь выключим один из них и попытаемся сделать звонок через мессенджер на выключенный смартфон. Вы услышите долгие гудки, которые будут длиться определенное время ( примерно 1 минуту) и затем последует сброс звонка. С точки зрения звонящего — другая сторона просто не берет трубку (человек не слышит, шумно, поставил на тихий режим и т.д.), но мы то знаем что другая сторона вообще находится оффлайн. Почему так происходит?

Причина — в самом ДНК мессенджеров старого поколения. Происходит следующее — пользователь слышит определенные звуки, называемые сигнализацией. Эта сигнализация пришла к нам из мира телефонии — например, есть звуки, обозначающие что абонент занят — такой сигнал называется Busy, он имеет определенную скважность и определенную частоту, причем в разных странах они разные. Есть Fast busy — он появляется тогда, когда вы поговорили с кем-то, удаленная сторона закончила разговор, а вы — нет и вы можете услышать такой сигнал — как правило частота у него чаще, чем у обычного Busy и т. д. Когда вы звоните из мессенджера, как в вышеприведенном примере, то вы слышите вызывные гудки которые называются Ring Back Tone (RBT).

Но на самом деле, по сравнению с обычной телефонной сигнализацией, которая была придумана для того чтобы дать пользователю понятие что реально происходит с его звонком, в случае с мессенджером такого не происходит — мессенджер просто не знает, находится другая сторона онлайн или нет, слышит ли другая сторона вызов или нет и делает следующее — начинает проигрывать вам в канал так называемый фейковый вызывной сигнал — Fake Ring Back Tone, а сам делает в это время совсем другие вещи — пытается разбудить ваше приложение, которое якобы спит.

Почему так происходит?

Потому что практически все мессенджеры используют пуш-нотификации для вызовов.
В общих чертах происходит следующее — сервер мессенджера, используя API для пуш нотификаций, делает серверам Google или Apple такой запрос — уважаемый Google (или Apple), сделай вызов моего приложения, вот ID аобнента — разбуди мой мессенджер, я сейчас буду делать звонок. Google или Apple говорит — ок и начинает жать педали чтобы разбудить приложение и запустить его на смартфоне. Таким образом, запускает приложение сервис Google или Apple и только после того, как запустился ваш мессенджер, он будет в состоянии принять входящий вызов. Интересно, что на самом деле ни Apple ни Google не гарантируют 100% работоспособности своих пуш уведомлений.

Почему Google или Apple? Потому что только они имеют постоянный доступ к своей операционной системе, установленной на вашем смартфоне и могут делать там что угодно — сделать пуш для стороннего приложения ( или сделать фотографию владельца, подслушать его и т. д., причем владелец вообще ничего никогда не узнает).

Но для того чтобы приложение проснулось, надо определенное время — которое зависит от разных факторов. Поэтому в то время, которое требуется на пробуждение уснувшего мессенджера, вам и проигрывают фейковые RBT, ну а если он вообще выключен — будут делать несколько попыток и только потом сбросят ваш звонок по таймауту. Примерно тоже самое происходит, когда оба смартфона онлайн — после набора проходит примерно 10-20 секунд, вызывающий абонент слышит в это время все тот же Fake RBT, и только после того как пуш разбудил приложение, происходит звонок вызываемому абоненту и он может его услышать (через 10-20 секунд!).

Еще одним отрицательным моментом использования пуш-нотификаций в мессенджерах является следующее — вы не можете просто взять и выключить их на определенное время.
Допустим, вы решили сделать цифровой детокс и какое-то время не получать сообщения в мессенджерах. Нет, это у вас не получится — просто потому что сервисы Google и Apple все равно разбудят его и включат при поступлении входящего сообщения — вы можете только удалить мессенджер чтобы не получать сообщения.

Так почему же все популярные мессенджеры используют пуш-нотификации? Ответ кроется в самом ДНК этих мессенджеров.

Давайте вспомним, когда они появились:

— WhatsApp — январь 2009 года
— Viber — декабрь 2010 года
— Telegram — август 2013 года

А теперь вспомним, какие смартфоны были флагманами в это время и какого уровня были смартфоны среднего ценового диапазона и как долго работали аккумуляторы на таких гаджетах.
Да, совершенно верно — у всех были слабые аккумуляторы, процессоры с большим потреблением и разработчики приложений стремились использовать пуш-нотификации — ибо только с их помощью можно было бы увеличить работу смартфона от аккумулятора. То есть, единственная польза от пуш-нотификаций — это банальная экономия энергии батарейки смартфона — в стендбай режиме приложение не работает и может запускаться только по пинку (пушу) от серверов Google или Apple. Замечательное решение… для смартфонов 7-5 летней давности.

Но на самом деле, минусы от использования пуш-нотификаций на этом не заканчиваются.
Дело в том, что такое ограничение на экономию батарейки полностью ограничивает возможности месседжинга как такового. Т.е., используя пуш, разработчики ограничили и поставили себя в определенные рамки, за которыми, тем временем, начали появляться мессенджеры нового поколения, работающие на других принципах.
Поделиться с друзьями
-->

Комментарии (86)


  1. yarric
    29.07.2017 15:55
    +2

    начали появляться мессенджеры нового поколения, работающие на других принципах

    На каких?


    1. za90
      29.07.2017 16:02
      +2

      Это тема для следующей «статьи».


      1. Mobile1
        29.07.2017 16:12

        Например Facebook Messenger не использует стандартные пуш-нотификации.
        На самом деле в следующей статье я хочу рассказать какие методы использует Apple для того чтобы разработчики использовали только пуши для VOIP звонков и какие проблемы вызывает такая позиция у разработчиков.


        1. za90
          29.07.2017 16:26

          Facebook Messenger
          Как насчет нет? В смысле он, конечно, не использует, как все, пуш, но от этого ему как раз приходится туго. Да и назвать мессенджер фейсбука новым поколением как-то язык совсем не поворачивается, судя по 4пда.


          1. Mobile1
            29.07.2017 16:48
            -3

            Вы не смотрите на 4pda — там наверняка пользователь написал с (условно) андроид 4, и с батареей на 1200мАч.
            Естественно будет все быстро разряжаться.
            Но!
            Посмотрите на новые андроиды — там меньше 3000-3200 мАч трудно найти модель.
            И все в основном с андроид 7.
            А там таких проблем не встречается, точнее они не ощущуаются, ну подумаешь, на 2-3% быстрее батарейка разрядилась.

            И в этом смысле это именно мессенджеры нового поколения, потому что они хорошо работают на новых смартфонах.

            Ну это примерно тоже самое что сейчас вы бы стали постоянно выключать Wi-Fi на вашем смартфоне для экономии.
            Раньше да, все выключали, но кто сейчас выключает Wi-Fi?
            Вы например, выключаете?


            1. za90
              29.07.2017 17:24

              Я заряжаю свой смартфон 2-3 раза в день и вы только что подали мне замечательную идею (на самом деле нет, и так понятно, что это не повлияет на то, как быстро ингресс высадит батарейку).


              1. D01
                04.08.2017 23:44

                А Вы попробуйте на один день отключить передачу данных и Wi-Fi


            1. gudvinr
              29.07.2017 17:29

              Я, например, всегда включаю режим энергосбережения для WiFi, хотя бы для того, чтобы телефон не реагировал на уведомления из того же телеграмма, когда я пользуюсь ПК.


              Судя по тому, что тут говорили, "мессенджеры нового поколения" используют keep-alive вместо пушей. Но что в них нового, если пресловутый XMPP с древних времён так и работает?


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


              1. Mobile1
                29.07.2017 17:40

                На самом деле не все так просто.
                Во первых можно видеть четкий презенс всех ваших собеседников.
                Во вторых — keep-alive постоянно пробивает наты и соответственно процент качественных аудио и видео звонков возрастает в этом случае, нет односторонней слышимости.
                Но самое главное не в этом, а в том что благодаря знанию о том что абонент онлайн можно делать совершенно другой, ранее недоступный функционал в мессенджерах.


                1. willyd
                  29.07.2017 18:15

                  Все тоже самое, только вы жертвуете избыточной фоновой активностью ради получения точного статуса приложения.
                  Возможно будет востребовано в энтерпрайсе. Но там вы столкнетесь с очень классной фичей «телефоный звонок всегда на первом месте». Не знаю, есть ли способ ее побороть, но она доставляет…
                  В повседневных мессенджерах мне это не нужно, от слова вообще, лучше бы придумали способ их полностью отключить без удаления аккаунта, как в скайпе — разлогинился и нет тебя.


                  1. Mobile1
                    29.07.2017 18:27

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


                    Нет, не только в статусе дело.
                    Попробуйте например сделать с пушами функцию Push-To-Talk.
                    У вас в принципе не получится ее сделать.

                    В повседневных мессенджерах мне это не нужно, от слова вообще.


                    Это потому что вы не представляете полный функционал без пуша.
                    Это как «нужны лошади быстрее», а автомобиль не нужен.


                    1. willyd
                      29.07.2017 18:53

                      Попробуйте например сделать с пушами функцию Push-To-Talk.

                      Спорное преимущество. Можно и записи на сервере для push-to-talk использовать, а в пуш-сообщении слать идентификатор записи, которую нужно прослушать.
                      Это потому что вы не представляете полный функционал без пуша.
                      Это как «нужны лошади быстрее», а автомобиль не нужен.

                      А можно менее абстрактно. Я реально не представляю, что это мне сильно понадобиться в повседневной жизни, о бизнес решениях не говорю.


                      1. Mobile1
                        29.07.2017 19:10
                        +1

                        Спорное преимущество. Можно и записи на сервере для push-to-talk использовать, а в пуш-сообщении слать идентификатор записи, которую нужно прослушать.


                        Это не Push-To-Talk ни разу, это просто отправка аудиосообщения, что есть везде.
                        Смысл PTT в том, что вы не притрагиваясь к смартфону слышите необходимую информацию.
                        Вы не совершаете никаких движений, но инфу получили.

                        А можно менее абстрактно. Я реально не представляю, что это мне сильно понадобиться в повседневной жизни, о бизнес решениях не говорю.


                        Ну например у вас есть автомобиль. У вас есть сигнализация, но вам приходится ставить машину далеко от вашего места жительства или работы. Или например вам нужно уехать в отпуск или командировку и опять таки, надо ставить на неохраняемую стоянку.
                        Берете старый смартфон, устанавливаете наш мессенджер, без пушей, и устанавливаете в машину. Теперь всегда и везде, за тысячи километров мы можете посмотреть что происходит с вашим авто.
                        Но не только смотреть, а сделать запрос геопозиции и получить удаленно карту с точкой где находится ваше авто — актуально когда поставили на большую стоянку и забыли где. Или машину увез эвакуатор.
                        Но более того — например у вас есть собака, вы пошли в супермаркет и ее оставили в машине, но задержались.
                        Вы можете не только посмотреть что она там делает, но и в случае если она там разбушевалась, подать команду ей голосом, используя...Push-To-Talk.

                        Надо такое?

                        Оно есть и работает и бесплатно.
                        Но старые старые мессенджеры такого в принципе не могут сделать…


                        1. willyd
                          29.07.2017 19:30

                          Это не Push-To-Talk ни разу, это просто отправка аудиосообщения, что есть везде.
                          Смысл PTT в том, что вы не притрагиваясь к смартфону слышите необходимую информацию.
                          Вы не совершаете никаких движений, но инфу получили.

                          Ну так это можно и пушем организовать. Телефон получил пуш-сообщение с идентификаторм, сам скачал и сам проиграл сообщение.
                          Берете старый смартфон, устанавливаете наш мессенджер, без пушей, и устанавливаете в машину. Теперь всегда и везде, за тысячи километров мы можете посмотреть что происходит с вашим авто.

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

                          Для этого смартфон не нужен. GSM трекеры уже давно используются.
                          И по поводу «посмотреть» — я не вижу смысла смотреть в пустой салон моего авто за 1000 км. А если в него кто и залезет, то наверное телефон уберут от греха подальше. Да и мне кажется, что скоро автоворы будут с собой брать глушители мобильной связи.

                          Двумя словами — выкатывайте, заценим.


                          1. Mobile1
                            29.07.2017 19:55

                            Пару дней и сядет аккумулятор, а если подключите к автомобильному то есть риск и его посадить, если он не первой свежести.


                            Решается ежедневным автозапуском.

                            Для этого смартфон не нужен. GSM трекеры уже давно используются.


                            Это не трекинг, а просто сообщение текущего гео.
                            Можно использовать для контроля за детьми, пожилыми и т.д.

                            Двумя словами — выкатывайте, заценим.


                            Вот здесь


                          1. Mobile1
                            29.07.2017 20:22

                            И по поводу «посмотреть» — я не вижу смысла смотреть в пустой салон моего авто за 1000 км.


                            Замените слова мое авто на мою квартиру и станет сразу интереснее…


                          1. Mobile1
                            30.07.2017 10:07
                            -1

                            Для этого смартфон не нужен. GSM трекеры уже давно используются.


                            В GPS трекерах нет Wi-Fi модуля, соответственно точность отпределения координат у него ниже в городских условиях.


                            1. willyd
                              30.07.2017 11:57
                              +1

                              Какое отношение WiFi имеет к определению координат по GPS?


                              1. Mobile1
                                30.07.2017 12:25

                                Самое прямое отношение. Я говорю про точную геопозицию, и получить ее помогают как раз совокупность данных от GPS, баз сотовых станций и… Wi-Fi.
                                Зачем Гугл собирает эти данные (об Wi-Fi точек), как вы думаете?
                                Затем чтобы выдать точное гео когда GPS недоступен (погода, индор и т.д.)
                                Вы даже можете вообще выключить GPS и все равно Гугл покажет вам точную позицию, именно по Wi-Fi.
                                Странно такие вопросы слышать на форуме IT…


                                1. willyd
                                  30.07.2017 12:53

                                  Эммм… думаю для авто мне хватит GPS. Тем более его точность точно не уступает точности определения геопозиции по WiFi. Дома же мне не нужен трекер.
                                  Ваше приложение мне начинает напоминать швейцарский армейский нож. Вроде и есть все полезное, но…


                                  1. Mobile1
                                    30.07.2017 13:17
                                    -1

                                    Сейчас все мессенджеры должны не только напоминать, но и быть швейцарским ножом, другое дело что из разных ДНК у многих это не получится…

                                    Эммм… думаю для авто мне хватит GPS. Тем более его точность точно не уступает точности определения геопозиции по WiFi. Дома же мне не нужен трекер.


                                    Не буду вас убеждать — вы абсолютно не наша ЦА.
                                    Вам, видимо, вообще ничего не нужно, кроме лошадей побыстрей…


                            1. KorDen32
                              30.07.2017 12:07

                              Не знаю как у вас, но я давно вне помещения не сталкивался с низкой точностью «чистого» GPS, как и со скоростью поиска спутников при холодном старте, особенно при наличии гибридного модуля GPS/Glonass[/Galileo].


                              1. Mobile1
                                30.07.2017 12:25

                                Ключевое слово — вне помещения.


                                1. KorDen32
                                  30.07.2017 12:52

                                  Мы все еще говорим о трекинге авто? Если его загонят куда-то в ангар или в гараж — маловероятно, что в условной промзоне до него добьет какая-нибудь точка WiFi.


                                  1. Mobile1
                                    30.07.2017 13:21

                                    Кто кого загонит?
                                    Это не противоугонная система, это несколько другое…
                                    И причем здесь Wi-Fi?
                                    Используется совокупность — нет GPS, нет Wi-Fi — есть сотовая связь в гараже?
                                    По сотовой связи тогда будем определятся и т.д.


                    1. StallinHrusch
                      04.08.2017 23:46

                      Легко. Пушами только инициировать соединение (пинать приложение). Когда оба клиента бодры — они инициируют keep-alive соединение. Потрындели, какое-то время приложение еще активно, потом ОС его тормозит (не помню как точно называется, в разных ОС по разному), при этом фаерится эвент, приложения посылают «последний писк». и опять ждут пуша.


              1. Mobile1
                05.08.2017 00:17

                Я, например, всегда включаю режим энергосбережения для WiFi,


                Это называется экономия на спичках…

                Для чего использовать мессенджер, который будет тратить больше батареи, если есть другие, которые тратят меньше?


                Я вам отвечу на ваш вопрос, вашим же предложением:

                хотя бы для того, чтобы телефон не реагировал на уведомления из того же телеграмма, когда я пользуюсь ПК.


                Потому что в мессенджере без пуша вы можете это сделать, а во всех других мессенджерах вы должны снимать носки выкручиваться через одно место ради простой операции — выключить приложение — но нет вы оказывается не можете выключить приложение.
                А так да, пуши очень удобны… но почему-то нельзя выключить приложение…


            1. Murmand
              29.07.2017 18:47

              У меня полуторагодовалый Iphone 6 и мессенджер от Фейсбука я удалил т.к. с ним телефон до конца дня иногда не доживал, при том, что пользовался я этим мессенджером посредственно, а основная моя телефонная активность это звонки и переписка в нескольких чатах Ватсапа. Удалив Фейсбучное приложение я честно сказать офигел т.к. теперь к вечеру у меня остается ~ 40% заряда.


            1. WaveCut
              30.07.2017 00:18

              Вы очень сильно переоцениваете проникновение нормальных смартфонов в аудитории пользователей мессенджеров.


              1. Mobile1
                30.07.2017 01:38
                -1

                Мне кажется, что это вы сильно недооцениваете их проникновение.
                Во-первых, смартфон живет в среднем год-полтора.
                Он разбивается, теряется, ломается, его крадут и т.д.
                Т.е. надо менять.
                Во-вторых, и это самое главное — не покупатели решают, а производители решают что покупать пользователям.
                Общество потребления, реклама и т.д.


                1. Yogo
                  05.08.2017 00:07

                  Откуда у вас столько денег, так часто телефоны менять? У меня все ещё 4.4.4


                  1. Mobile1
                    05.08.2017 00:11

                    Вот у вас 4.4.4 — и у меня к вам такой же вопрос — а почему не 2.3?
                    Откуда у вас столько денег?


            1. astraleuro
              30.07.2017 19:57
              +3

              Никогда не понимал такой точки зрения! Почему, если объем батареи увеличился, можно забить на оптимизацию энергопотребления? Почему если увеличился среднестатистический объем ОП вырос, нужно его тут же чем то забить?
              Вообще печально смотреть на то, на сколько обленились разработчики обленились: процес хрома для одной(!) вкладки съедает 300-500 Мб памяти, простейшая програмка считывания кода нажатий клавиш требует фреймворк не ниже 4.0, зачем пихать условную ардуину туда, где справится десяток микросхем простейшей логики? Куда же мы катимся, товарищи?


            1. VioletGiraffe
              31.07.2017 12:13
              +2

              Я выключаю вай-фай, GPS и mobile data. Включаю только тогда, когда нужно. Мессенджеры задолбали каким-то непонятным образом работать, не будучи мной явно запущенными, поэтому поставил приложение Greenify, которое через некоторое время после ухода телефона в standby гасит всех.
              После Greenify необъяснимые периоды очень быстрой разрядки аккумулятора почти пропали (10-20% за пару часов, а обычно телефон живёт 5-6 дней при заряде с 15% до 95%).


              1. hyperwolf
                02.08.2017 01:39

                О, спасибо за Greenify — меня иногда в последнее время тоже стали удивлять нагрев смартфона и разряд по 10-15% в час при выключенном интернете, при условии, что смартфон просто лежит на столике рядом.


        1. willyd
          29.07.2017 16:38

          Меня терзают смутные сомнения.
          Qualify/Keep Alive будут понемногу подъедать заряд батареи. Без них будут проблемы с натами и доступностью.
          Ну и в распределенной системе время соединения будет дольше. Нужно найти данные контакта, проверить доступность, сделать ивайт, дождаться ринга. Ринг может не прийти потому, что приложение не успело проснуться, или действительно в оффлайне — нужно завышать таймаут на ожидание ответа, чтобы быть уверенным в статусе абонента.


          1. Mobile1
            29.07.2017 16:57

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


            Совершенно верно, так и происходит сейчас.


            1. willyd
              29.07.2017 17:08

              Простите, а чем будет отличаться WebRTC Facebook Messagenger от этого? Прослойкой в виде push-серверов google и apple? Ну так непонятно как происходит вызов в нем. «Трапезоид» не так просто нарисовать, когда протокол закрытый.
              Быстрый гугл дал только предположения, что там MQTT по WebRTC, не более. Я так понимаю, что приложение получает инвайт по MQTT (не факт что MQTT и что инвайт приходит по WebRTC) и открывает WebRTC сокет, в котором отвечает рингом. Это чем-то кардинально отличается?
              Мне кажется, что FB просто решил уйти от серверов гугла и яблока.


              1. Mobile1
                29.07.2017 17:30

                Я на сегодняшний момент точно не знаю как все реализовано у Facebook Messagenger.
                Дело в том что они вносят изменения каждый день, если не каждый час.
                Вообще Facebook — это какая-то постоянная бета, напильник там постоянно слышен везде :)

                Но и конечно, наверняка он не хочет чтобы гугл и Apple видели что у него там происходит и собирали свою статистику.

                В этой связи забавно было смотреть на конкурс на разработку государственного мессенджера в России — там похоже все использовали пуш-нотификации гугла и эпла, но при этом позиционировали себя так что якобы ни один байт за пределы России не уйдет :)
                Хотя на самом деле все метаданные звонков и сообщений этого «защищенного» мессенджера хранятся у эпла и гугла.
                И так кто-то выиграл такой конкурс, а там все завязано на пушах, прямо в описании так и говорится — быстрота обработки сообщений зависит от соответсвующих серверов Google и Apple.
                Смех, да и только :)


                1. willyd
                  29.07.2017 17:39

                  Так о чем мы тогда говорим, если вы не знаете. Я думал, что нас ждет реверс протокола или описание концепта.
                  Если единичный мессенджер будет использовать свой сокет для пушей еще нормально, но теперь представьте, что все мессенджеры будут это делать, и представьте разницу в оптимизации потребления в стоковом пуше и сторонних компаний.
                  Кстати, на ГТ или хабре была статья, что Цекурберг заставил девелоперов ходить с андроит смартфонами, чтобы начали решать проблему потребления питания.


                  1. Mobile1
                    29.07.2017 17:47

                    Facebook Messenger я привел только для примера, потому что он тоже популярный и у него нет пушей.
                    Ни о каком реверсе протокола речь не шла, вы меня с кем-то путаете :)
                    А концепта нет, есть уже готовый мессенджер, но о нем здесь наверное не стоит говорить…


        1. uterr
          29.07.2017 21:52

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

          А почему вы это называете новыми принципами? Вот сатрые приложения, до андроида и ios тоже никаких пуш-нотификаций не использовали.


          1. Mobile1
            29.07.2017 22:02

            Абсолютно с вами согласен — в 19 веке тоже не использовали пуш.


            1. sundmoon
              04.08.2017 23:48

              В 19 веке уже был почтовый адрес.
              К которому могли обращаться разные «приложения».

              Сейчас разные мессенждеры также могли бы использовать единственный инфраструктурный сервис на клиенте.


  1. dmitryredkin
    29.07.2017 16:26

    Да наоборот, не старого поколения, а нового. Мессенджеры были задолго до изобретения этих ваших пуш-уведомлений в мобильных ОС. Вот например скайп — там как раз 2 вида этих RBT: «соединяю» и «вызываю». Единственная фича скайпа, которой мне не хватает в вотсапе.


    1. Mobile1
      29.07.2017 16:53

      Речь не идет о десктоп клиентах — там нет проблемы с батарейкой и можно делать вызов сразу.
      Именно поэтому там может показываться честный статус абонента — онлайн или нет в сети.
      А мессенджер с пушами такого не может показать — он показывает только когда приложение свернулось — вот они и пишут — пользователь был 5 минут назад и т.д.
      А что с пользователем в эти 5 минут произошло — непонятно и какой статус у него — непонятно, примет он звонок или нет — непонятно и в этом проблема.


      1. n_demitsuri
        04.08.2017 23:48

        В мобильном Хэнгутс тоже отдельные звуки для «соединяю» и обычные гудки при звонке.


  1. svanichkin
    29.07.2017 16:59

    бредостатья… «Потому что только они имеют постоянный доступ к своей операционной системе, установленной на вашем смартфоне и могут делать там что угодно — сделать пуш для стороннего приложения ( или сделать фотографию владельца, подслушать его и т. д., причем владелец вообще ничего никогда не узнает).»


    1. Mobile1
      29.07.2017 17:01
      -1

      бредостатья… «Потому что только они имеют постоянный доступ к своей операционной системе, установленной на вашем смартфоне и могут делать там что угодно — сделать пуш для стороннего приложения ( или сделать фотографию владельца, подслушать его и т. д., причем владелец вообще ничего никогда не узнает).»


      А что не так?
      Вы не помните те времена, когда вы заходили в свой гугл аккаунт с нового смартфона и потом гугл вам в почту присылал вашу фотографию, сделанную втихаря с этого же телефона с текстом — кто-то вошел в ваш аккаунт с неизвестного устройства и т.д.?
      Никогда у вас такого не было?


      1. boingo-00
        29.07.2017 18:13

        Удалено


  1. ns3230
    29.07.2017 18:00

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

    А почему тогда на Xiaomi на прошивке для Китая, в которой гуглосервисов отродясь не было, тот же скайп тоже работает? Получается, что отправка пушей именно через серверы гугл не обязательна.


    Еще одним отрицательным моментом использования пуш-нотификаций в мессенджерах является следующее — вы не можете просто взять и выключить их на определенное время.

    Я не знаю, что там в стоковых сборках Андроида (у меня форк, а копать чистый ведроид на предмет управления программами лень), но на MIUI это проще простого. Там приложение можно огородить так, что о своем существовании оно только иконкой на домашнем экране будут напоминать.


    1. Mobile1
      29.07.2017 18:09

      А почему тогда на Xiaomi на прошивке для Китая, в которой гуглосервисов отродясь не было, тот же скайп тоже работает? Получается, что отправка пушей именно через серверы гугл не обязательна.


      Как это не нет гуглосервисов-то?
      А сама операционка андроид чем вам не гуглосервис?
      Или у вас не андроид был?


      1. ns3230
        29.07.2017 18:48

        А сама операционка андроид чем вам не гуглосервис?

        Версия для Китая от Андроида содержит только ядро. Она не сертифицирована Google, там нет никаких сервисов Google, при первом включении на китайке не предлагает войти в аккаунт гугла, только в аккаунт МИ. То есть про существование аппаратов на китайке серверы Гугла не знают. А как можно послать пуш-уведомление с серверов гугла на аппарат, о существовании которого эти серверы не знают, и для которых его как бы не существует?


        1. Mobile1
          29.07.2017 18:56

          Ну значит у них какой-то китайский сервис пушей работает.


          1. ns3230
            29.07.2017 19:25

            Но откуда приложениям знать про китайский сервис? Мне кажется, все немного иначе, и тут может быть одно из двух: или API Андроида, ответственные за работу пушей, принудительно связываются с серваками Гугла, которые присваивают аппарату ID (но в Китае многие сервисы гугла забанены, доступа к сервакам нет, так что это может не сработать), или же приложения пингуют абонента без посредничества серваков Гугла (по последнему IP или как, я хз). Второй вариант выглядит более вероятным, так как если на MIUI не дать софту права на автозапуск и ограничить фоновую активность, то аппарат будет жить до двух недель, но уведомления от программ фиг дождешься.


            1. Maximuzzz
              29.07.2017 21:45

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


              1. ns3230
                29.07.2017 22:09

                А это выглядит правдоподобно, спасибо за разъяснение схемы.


      1. KorDen32
        30.07.2017 09:14

        Как это не нет гуглосервисов-то?
        А сама операционка андроид чем вам не гуглосервис?

        Вы, кажется, не знаете что такое/не различаете Android (AOSP) и GApps. Если поставить чистый AOSP/Cyanogen(Lineage), пушей не будет.


  1. azShoo
    29.07.2017 19:09
    +3

    Да, конечно, за последние 5 лет смартфоны стали жить намного дольше на одном заряде батареи.
    Спасибо, насмешили.
    На практике появление более емких аккумов на девайсах привело только к одному — часть разработчиков просто забило болт на энергоэфективность своих приложений. Фэйсбук-мессенджер, который тут в комментах упомянут, жрет батарею как сволочь. Тиндер, в котором из всей логики — прогрузить фоточки, да дернуть геолокацию, заставляет мой свеженький андроид греться до состояния сковороды.
    Да что там, большинство приложений старающихся держать в фоне свои процессы, просто жрет батарею ради влажных мечтаний своих создателей о высоком юзабилити. Практической пользы юзеру — ноль.
    Ну и да, привет вам из 2017. Здесь смартфон проживающий рабочий день на одной зарядке — это повод быть довольным. А смартфон, проживающий двое суток в режиме сильно фонового пользования — повод пиарить его как «живущий невероятно долго».


    1. Mobile1
      29.07.2017 19:19

      часть разработчиков просто забило болт на энергоэфективность своих приложений.


      Эпл не забил, если конечно вас это успокоит.
      Ему просто тяжело поставить другую батарейку, вот он и мучается.


    1. tmin10
      29.07.2017 19:22

      Всё ещё оперативку забивает ужасно. Вроде 2 гига в телефоне, а постоянно свободно мегабат 200 и приложения олго запускаются и тормозят, а стоит свернуть бразер, обратно он уже не развернётся, а запустится заново.


    1. willyd
      29.07.2017 19:36
      +1

      Тиндер, в котором из всей логики — прогрузить фоточки, да дернуть геолокацию, заставляет мой свеженький андроид греться до состояния сковороды.

      Быстрее определятся надо, а не разглядывать!


  1. electronus
    29.07.2017 19:18
    +1

    Цифровой детокс делается выключением интернета на мобильном устройстве


  1. susnake
    29.07.2017 21:03

    Вы услышите долгие гудки, которые будут длиться определенное время ( примерно 1 минуту) и затем последует сброс звонка.

    Ну раз на КДПВ указан BBM, то скажу за него:
    Если пользователь находится в не сети, то иконки вызова просто будут серыми и позвонить просто не получится.


    1. mxms
      31.07.2017 21:09

      +1 насчёт BBM. Тема автором изучена плохо.


      1. Mobile1
        04.08.2017 23:50

        А напомните, сколько % рынка занимает ВВМ?


        1. mxms
          07.08.2017 01:19

          Вы утверждаете, что любой популярный мессенджер некорректно отрабатывает недоступность адресата. BBM является популярным мессенджером, что вы сами косвенно подтвердили в графическом оформлении поста. Следовательно, ваше утверждение неверно.
          С рыночными долями оставлю разбираться вам.


          1. Mobile1
            07.08.2017 05:55

            Вот я не понимаю — вам делать нечего?
            ВВМ — НЕПОПУЛЯРНЫЙ мессенджер и точка.
            Мы его не рассматриваем вообще.
            В «графическое» оформление он попал случайно.
            Вам просто зацепиться к чему-то надо?


  1. CAJAX
    29.07.2017 21:38

    Вы путаете причину со следствием. Телефоны (речь об Android) стали дольше работать за счет оптимизаций самой оси и вынужденной оптимизации приложений, работающих на ней. Самопальные long-poll соединения как раз были популярны до того как гугл начал закручивать гайки и предлагать пуш. Такие соединения и были одной из причин разряда батарей.

    Пуши медленные только во время сна. При пробуждении приходит сразу вся очередь. Пока телефон не уснул они почти моментальные, статусы собеседников можно менять сколько угодно.

    А мессенджер фейсбука, — это как раз пример плохого приложения, игнорирующего современные гайдлайны. Поэтому с седьмой версии андроид периодически предлагает прибить его процесс за прожорливость.


    1. Mobile1
      29.07.2017 22:08
      -1

      Пуши медленные только во время сна. При пробуждении приходит сразу вся очередь. Пока телефон не уснул они почти моментальные, статусы собеседников можно менять сколько угодно.


      Да это все понятно.
      Проблема-то в том что бОльшую часть времени приложение спит.

      А мессенджер фейсбука, — это как раз пример плохого приложения, игнорирующего современные гайдлайны. Поэтому с седьмой версии андроид периодически предлагает прибить его процесс за прожорливость.


      Ну гайдлайны и не закон.
      А потребление увеличивается на единицы процентов на самом деле.
      Просто считалка расхода у андроида кривая.


      1. jonic
        30.07.2017 02:23

        Вообще лучше был бы закон как у Apple. Жаль правда что теперь тестирование тоже занимает дня 2-3, а не как раньше недели две, и сейчас явно заметно упрощение ревью эпл.


        1. Mobile1
          30.07.2017 10:14

          Вот только не надо про Apple как про образец.
          Такого издевательского и наплевательского отношения к девелопперам нет ни у кого.
          Они движутся в таком же направлении что и Нокия.


      1. CAJAX
        30.07.2017 19:08

        десяток таких «единиц процентов» и вот уже десятки. Жду, когда введут опцию для автоматического убивания такого хлама.


  1. KorDen32
    30.07.2017 09:21

    Telegram… попытаемся сделать звонок через мессенджер на выключенный смартфон

    Telegram, пока не связался с устройством вызываемого, пишет Waiting, гудков нет. И только когда устройство окликнулось, появляется Ringing и гудки.

    мессенджеров старого поколения

    Мдэ…


    1. Mobile1
      30.07.2017 10:36

      Telegram, пока не связался с устройством вызываемого, пишет Waiting, гудков нет. И только когда устройство окликнулось, появляется Ringing и гудки.


      Просто Телеграм еще не умеет делать фейковые RBT, т.к. он самый слабый мессенджер в технологическом плане.

      Ибо заставлять слушать людей тишину после набора — это самое худшее что можно придумать в VOIP.

      Уж лучше тогда Fake RBT…


      1. KorDen32
        30.07.2017 11:58

        Постойте. Претензия вашего поста в том, что «мессенджер просто не знает, находится другая сторона онлайн или нет» и вызывающий всегда слышит гудки вне зависимости. Однако по крайней мере в Telegram вполне себе разделены «ждем появления в онлайне» и «вызываем», и на экране это отображается. Тишина после набора — пожалуй да, недочет, но причем тут «слабый в технологическом плане»?


        1. Mobile1
          30.07.2017 12:32

          Тишина после набора — пожалуй да, недочет, но причем тут «слабый в технологическом плане»?


          Это и есть недочет на самом деле.
          Вы думаете у других мессенджеров тишины нет? Есть, но они заслоняют ее фейковыми RBT, чтобы было более комфортно для пользователя, а Телеграм похоже не знает что так можно.
          Ни и вообще Телеграм на самом деле слабенький по функционалу.
          Все эти чаты довольно легко сделать, аудио недавно только появилось, а видео вообще нет.
          Видео — это на порядки сложнее, чем просто чаты.
          Если бы не харизма и маркетинг Дурова, на мессенджер бы никто не обратил внимание, потому что ничего в нем нет выдающегося. Средний такой по функционалу, даже ниже среднего…


          1. tmin10
            30.07.2017 22:41

            А как же кастомные наборы стикеров!?


            1. Mobile1
              04.08.2017 23:51

              +1 про стикеры.
              Как я про них забыл…


  1. Andronas
    30.07.2017 09:30

    Тут либо разработчики Facebook Messenger оптимизируют своё по либо производители смартфонов будут использовать более ёмкие аккумуляторы. Причём непонятно почему фб своё по не оптимизировали до сих пор. Может быть аудитория этого мессенджера настолько мала в сравнении с остальными что разработчики и не парятся с оптимизацией. Неразумно использовать мессенджер выжирающий аккумулятор за день.


    1. CAJAX
      30.07.2017 20:56

      Просто мыши продолжают жрать кактус. Без установленного мессенджера сложно прочитать чаты. Либо открывать десктоп версию, либо ставить мессенджер лайт, который из гугл-плея ставится только в Индии. Так что пока он хоть как-то работает, его будут ставить, выбора нет.
      Фейсбук мессенджер — зло, на которое могут равняться только разработчики такого же шлака.


      1. zikasak
        30.07.2017 21:00

        >только в Индии

        Не только. В РФ тоже возможно.


  1. Ferguson
    30.07.2017 12:04

    Вы забыли о Microsoft. У них есть как свои сервера для Push-уведомлений для систем Windows. Так и целый термоядерный комбайн для всех систем на базе Azure.


  1. quwy
    31.07.2017 03:19

    Да что там месенджеры! У нас мобильный оператор такое однажды сделал для всех голосовых вызовов. Очень хотелось посмотреть в глаза существу, придумавшему это. Во все три глаза.


  1. IRT
    04.08.2017 23:53

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

    Это на каких еще других принципах? На принципах каждому приложению по собственному keep-alive соединению? Т. е., пока я бегаю в метро, по подземным переходам и подвалам, по новым принципам, все 100 приложений на телефоне должны туда-сюда просыпаться-засыпать, восстанавливать и терять свои 100 соединений, гонять трафик…

    Канал push уведомлений это и есть, по сути keep-alive соединение с long pooling. Его для того и придумали, чтобы смартфон поддерживал одно соединение с интернетом, а не сто и тысячу разных.

    >Ни и вообще Телеграм на самом деле слабенький по функционалу.

    Ну это вообще пушка. Давайте, сделайте мне уведомления от моего сервера в WhatsApp и Viber. Слабо? Еще чтобы снимки с камеры наблюдения падали в чат.
    И еще чтобы спама не было, а то Вайбер каждый день какую-то ювелирку предлагает купить. И чтобы можно было на нескольких устройствах поставить программу, воцапу привет.
    Да что с вами говорить, вы вообще не разбираетесь в мессенджерах.


    1. Mobile1
      05.08.2017 00:05

      Канал push уведомлений это и есть, по сути keep-alive соединение с long pooling. Его для того и придумали, чтобы смартфон поддерживал одно соединение с интернетом, а не сто и тысячу разных


      Ну у вас и так одно соединение — или вайфай или мобильная сеть.
      Или вы имеете ввиду что когда одно приложение разбудили, то оно будит всех остальных?
      Если у вас работает одновременно несколько приложений, то они не синхронизируются друг с другом, а делают так как им нужно, поэтому никакого смысла в пушах, кроме экономии 2-3% заряда, нет абсолютно.
      Это экономия на спичках.

      Ну это вообще пушка. Давайте, сделайте мне уведомления от моего сервера в WhatsApp и Viber. Слабо? Еще чтобы снимки с камеры наблюдения падали в чат.


      В чем пушка-то? В том что по API можно высылать сообщения в чат?
      Это просто API и никакого отношения к возможностям мессенджера не имеет.

      Да что с вами говорить, вы вообще не разбираетесь в мессенджерах.


      Сюда посмотрите , почитайте про функционал, потом поймете что такое никто с пушами сделать не в состоянии…