Ubre / Lyft как переадресация - PullRequest
       21

Ubre / Lyft как переадресация

0 голосов
/ 03 декабря 2018

Я работаю над приложением для обмена поездками (только бэкэнд и приложение для Android).Это началось как академический проект.Сейчас я пытаюсь улучшить приложение, надеясь однажды запустить его в своем районе.У меня возникла проблема с переадресацией звонков водителям.Сейчас я делаю следующее:

  • Выберите 5 соседних драйверов
  • Отправьте уведомление водителю через Socket.io
  • Если сокет отключен, отправьтеуведомление посредством push-уведомления
  • Между тем сервер выделяет 20 секунд для каждого драйвера
  • Если от приложения не получено подтверждение, сервер отправляет запрос следующему драйверу, и так далее, и так далее

>

  • Когда приложение получает уведомление от Socket / push, оно приносит отправляет push-уведомление API
  • Этот API подтверждает, если запросвсе еще активен для этого драйвера
  • Когда он получает ответ от сервера, он запускает рингтон и отправляет подтверждение на сервер

>

  • После получения подтверждения сервер знает, что драйвер получил запросы, и не отправляет запрос следующему драйверу

  • Если приложение отклоняет вызов,сервер отправляет запрос следующему драйверу

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

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

...