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

Этот трюк работает только если вы используете iMessage. Если вы пишете кому-то на телефон Android, эти точки никогда не появляются. Вы просто смотрите на зеленый пузырек. iMessage встроено в приложение «Сообщения» на iPhone, iPad и iPod. Оно выглядит как обычная текстовая переписка. Но функционирует скорее как мессенджер. Когда вы отправляете сообщение другому пользователю Apple, ваш телефон определяет его Apple ID. Затем он направляет данные через серверы Apple, а не через сеть сотового оператора.

Это различие имеет значение для скорости и обновлений статуса. Обычные SMS-сообщения передаются через вышки мобильных операторов. Они громоздки. Они не содержат богатых метаданных. iMessage использует Apple Push Notification service (APNs) для передачи данных. Эта система основана на протоколе расширенной передачи сообщений и присутствия (XMPP). XMPP позволяет серверам общаться друг с другом. Он позволяет пользователям на разных серверах обмениваться уведомлениями. Google Talk использовал этот же протокол. Старый сервис Apple iChat также его использовал.

Ваш iPhone не ждет, пока вы откроете приложение, чтобы проверить наличие сообщений. Он поддерживает постоянное соединение низкого уровня с серверами APNs. Пока у вас есть сетевое подключение, ваше устройство находится в режиме прослушивания. Оно проверяет наличие новых текстов. Проверяет приглашения в FaceTime. Проверяет оповещения от других приложений.

Индикатор набора текста работает благодаря этой непрерывной связи. iPhone получателя также общается с APNs. Когда они нажимают клавиши, это действие обнаруживается. Сервер связывает это действие с вашим Apple ID. Затем он отправляет сигнал обратно на ваше устройство. Появляются точки. Вы знаете, что они печатают.

Этот процесс дает сбой, если соединение прерывается. Нет Wi-Fi. Нет сотовых данных. Вы офлайн. iPhone переключается в режим стандартных SMS. Богатые функции исчезают. Вы теряете уведомления о прочтении. Вы теряете индикаторы набора текста. Вам остается только гадать. То же самое происходит, если вы пишете кому-то, используя другую операционную систему. Переключение протокола оставляет вас в неведении относительно их намерений.