История изменений
Исправление KivApple, (текущая версия) :
Сохраняй черновики не каждые 2 секунды, а, например, если юзер перестаёт печатать надолго или если он закрывает диалог. Или сохраняй раз в 2 секунды только на клиенте, а на сервер сохраняй только при неактивности или при закрытии диалога.
Риалтайм синхронизация по мере набора черновика между клиентами, как правило не нужна, потому что либо человек будет набирать сообщение целиком на одном устройстве, либо при смене устройств будет большая задержка (например, начал набирать на компе, задумался, закрыл приложение, спустя несколько часов открыл на телефоне и продолжил набирать).
Касательно атомарного удаления черновика можно присваивать сообщениям и черновикам UUID (генерировать прямо на устройстве), при отправке черновика переиспользовать его UUID для сообщения (таблицы же разные, так что конфликта ключей не будет). Если клиент видит в диалоге сообщение с тем же UUID, что и черновик, он игнорирует черновик (а бекэнд когда-нибудь догадается подчистить черновики).
Исправление KivApple, :
Сохраняй черновики не каждые 2 секунды, а, например, если юзер перестаёт печатать надолго или если он закрывает диалог. Или сохраняй раз в 2 секунды только на клиенте, а на сервер сохраняй только при неактивности или при закрытии диалога.
Риалтайм синхронизация по мере набора черновика между клиентами, как правило не нужна, потому что либо человек будет набирать сообщение целиком на одном устройстве, либо при смене устройств будет большая задержка (например, начал набирать на компе, задумался, закрыл приложение, спустя несколько часов открыл на телефоне и продолжил набирать).
Исходная версия KivApple, :
Сохраняй черновики не каждые 2 секунды, а, например, если юзер перестаёт печатать надолго или если он закрывает диалог. Или сохраняй раз в 2 секунды только на клиенте, а на сервер сохраняй только при неактивности или при закрытии диалога.
Риалтайм синхронизация по мере набора черновика между клиентами, как правило не нужна, потому что либо человек будет набирать сообщение целиком на одном устройстве, либо при смене устройств будет большая задержка.