Задать вопрос

Взаимодействие приложения такси с сервером в реальном времени, какие протоколы и технологии использовать?

1)Нужно чтобы такси в реальном времени отправляли местоположение на сервер,
2) Когда появляется новый заказ, необходимо всем таксистам отправить в реальном времени

Вариант которые пришли мне в голову
1) Websocket
2) Nats brocker или RabbitMq, но подключать их напрямую из клиента андроид такси выглядит небезопасно

Какие технологии, протоколы лучше использовать ? В данный момент есть приложение на Андроид и Серверное веб приложение, нужно связать их общение
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Средний 14 комментариев
Пригласить эксперта
Ответы на вопрос 3
@rPman
Это как сравнивать тарелку и посудомойку, ну несравнимые вещи, которые могут существовать вместе.

Наружу выпускать лучше только http, а это значит Websocket или http/3 WebTransport, особенно если подразумевается браузерный клиент (есть еще webrtc но он тут не нужен).

На сервере обработку очередей ты можешь организовывать как тебе угодно. Можешь и RabbitMq брать, но не вижу особого в этом смысла.

По твоему ТЗ (оно скорее всего не полно, но маловероятно что будет что то значимое) у тебя нет особой сложности в разработке... особенно если нагрузка предполагается не высокая, которую способен потянуть один сервер, т.е. одно приложение, которое не нужно делить на ноды, реализовывать их добавление или замену на лету от нагрузки и т.п... но даже в этом случае, я точно помню были готовые брокеры, встраиваемые прямо в веб сервер nginx как прослойка между бакэндом и клиентами, бегло погуглил, есть https://nchan.io .
Ответ написан
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Веб-сокеты плюс любой бинарный сериализатор плюс какое-нибудь шифрование поверх в рамках ваших требований: bson, protobuf и прочее что-то популярное (непопулярное - устанете искать адекватную либу). Гнать текстовый трафик через мобильные сети не самое лучше решение, а шифрование надо просто чтобы осложнить жизнь любителям всяких манипуляций и взломов.
Ответ написан
@Zanak
1. А зачем отслеживать местоположение такси? Пусть таксист сам, когда готов, или за пару минут до того, автоматически, с известной периодичностью, стучится на сервер запросом, типа: "я здесь, ..., ищу заказ, чего есть". Сервис вычисляет расстояние до активных клиентов и кидает варианты о тех, например, до кого менее 3 километров. Такси, чей аппарат выключен, или находится в пути, не тратится на интернет и не создает ненужной нагрузки на сервере.
2. Новый заказ должен попадать тем, кто может его взять сейчас, или через несколько минут, разве нет?

Протоколы обмена и способы хранения данных на сервере могут быть почти любые, http/rest/websocket, на чистых sql базах, или какой нибудь nosql, с очередями или без. Чего лучше знаешь, то и используй, кмк.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы