История изменений
Исправление KivApple, (текущая версия) :
Верно. Только сервер всё равно должен удалить черновик, все эти игры с ID последнего черновика нужны лишь, чтобы клиент смог скрыть отправленный черновик и не смущать пользователя, пока сервер не спохватится и не удалит его по-настоящему (так как у нас нет транзакций и может иметь место быть сначала появление сообщения, а когда-нибудь потом удаление черновика, но это «когда-нибудь» должно рано или поздно наступить, именно поэтому мы храним ID лишь одного черновика, полагая, что задержка удаления меньше, чем скорость отправки новых сообщений тем же юзером).
Правда, если клиент один, то непонятно зачем вообще грузить черновики на сервер (обычно это делается, чтобы можно было начать набирать сообщение на одном устройстве и продолжить на другом). Ну и в целом клиент может локально помечать тогда черновик как отправленный и скрывать (если мы таки хотим грузить черновики с сервера и может произойти задержка между отправкой и удалением на сервере), он же знает, что его отправил. Вот если клиентов несколько, тогда один может не знать, что черновик отправил другой.
Исправление KivApple, :
Верно. Только сервер всё равно должен удалить черновик, все эти игры с ID последнего черновика нужны лишь, чтобы клиент смог скрыть отправленный черновик и не смущать пользователя, пока сервер не спохватится и не удалит его по-настоящему (так как у нас нет транзакций и может иметь место быть сначала появление сообщения, а когда-нибудь потом удаление черновика, но это «когда-нибудь» должно рано или поздно наступить, именно поэтому мы храним ID лишь одного черновика, полагая, что задержка удаления меньше, чем скорость написания новых сообщений тем же юзером).
Правда, если клиент один, то непонятно зачем вообще грузить черновики на сервер (обычно это делается, чтобы можно было начать набирать сообщение на одном устройстве и продолжить на другом). Ну и в целом клиент может локально помечать тогда черновик как отправленный и скрывать (если мы таки хотим грузить черновики с сервера и может произойти задержка между отправкой и удалением на сервере), он же знает, что его отправил. Вот если клиентов несколько, тогда один может не знать, что черновик отправил другой.
Исправление KivApple, :
Верно. Только сервер всё равно должен удалить черновик, все эти игры с ID последнего черновика нужны лишь, чтобы клиент смог скрыть отправленный черновик и не смущать пользователя, пока сервер не спохватится и не удалит его по-настоящему (так как у нас нет транзакций и может иметь место быть сначала появление сообщения, а когда-нибудь потом удаление черновика, но это «когда-нибудь» должно рано или поздно наступить).
Правда, если клиент один, то непонятно зачем вообще грузить черновики на сервер (обычно это делается, чтобы можно было начать набирать сообщение на одном устройстве и продолжить на другом). Ну и в целом клиент может локально помечать тогда черновик как отправленный и скрывать (если мы таки хотим грузить черновики с сервера и может произойти задержка между отправкой и удалением на сервере), он же знает, что его отправил. Вот если клиентов несколько, тогда один может не знать, что черновик отправил другой.
Исходная версия KivApple, :
Верно.
Только если клиент один, то непонятно зачем вообще грузить черновики на сервер.