Хорошо, что я не математик, а программист. Поэтому у меня задача решаема.
Открыли TCP соединение, в нем отправили свой ID клиента, ID поездки (чтобы можно было несколько машин вызывать), адрес. В СУБД начинается транзакция.
Сервер шлёт «stage1»
клиент отвечает «stage1confirmed» [с этого момента у клиента начинает писать «начато бронирование авто»]
сервер шлёт «stage2» [с этого момента у клиента начинает писать «авто в пути»]
клиент отвечает «stage2confirmed»
с клиента должен прилететь FIN, если это происходит СУБД делает COMMIT, если нет, то ROLLBACK. Финальный ACK мобильному приложению уже не роляет, в любом случае процесс пошёл.
Слово математикам, что может пойти не так?
>После разрыва TCP-соединения сервер тоже не сможет отправить клиенту уточняющий запрос
Для обновлений статуса (где едет машина) REST уже вполне уместен.
Открыли TCP соединение, в нем отправили свой ID клиента, ID поездки (чтобы можно было несколько машин вызывать), адрес. В СУБД начинается транзакция.
Сервер шлёт «stage1»
клиент отвечает «stage1confirmed» [с этого момента у клиента начинает писать «начато бронирование авто»]
сервер шлёт «stage2» [с этого момента у клиента начинает писать «авто в пути»]
клиент отвечает «stage2confirmed»
с клиента должен прилететь FIN, если это происходит СУБД делает COMMIT, если нет, то ROLLBACK. Финальный ACK мобильному приложению уже не роляет, в любом случае процесс пошёл.
Слово математикам, что может пойти не так?
>После разрыва TCP-соединения сервер тоже не сможет отправить клиенту уточняющий запрос
Для обновлений статуса (где едет машина) REST уже вполне уместен.