Выбор ответа Middle Мобильный system design спрашивают часто обновлено

Транспорт для чата в реальном времени

Вопрос

Какой транспорт чаще всего выбирают для доставки сообщений в открытом мобильном мессенджере?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: WebSocket, пока приложение открыто, плюс push для фона и догрузка по курсору при подключении. WebSocket даёт двустороннюю связь с минимальной задержкой.

Варианты ответа

  1. Опрос сервера раз в секунду через REST: просто, работает через любые прокси и в фоне
  2. Только push-уведомления: они доставляют каждое сообщение и в фоне, и на переднем плане
  3. WebSocket, пока приложение открыто, плюс push для фона и догрузка по курсору при подключенииправильный ответ
  4. SMS для каждого сообщения, потому что они доходят без интернета и не требуют сервера

Разбор

WebSocket даёт двустороннюю связь с минимальной задержкой. В фоне соединение закрывается системой, поэтому о новых сообщениях сообщает push, а при открытии клиент догружает пропущенное по курсору. Частый опрос тратит батарею и трафик, только push ненадёжен и с задержками.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.