Клиент-сервер, способ обмена обновлениями

127
23 апреля 2022, 12:10

Подскажите, пожалуйста, правильный вариант реализации клиент-серверного взаимодействия (если это можно таковым назвать).

Суть: имеем хостинг (сервер) с MySQL и клиент-приложение, при запуске получающее актуальную БД. Через клиент каждый авторизованный пользователь может добавлять/изменять/удалять данные из общей базы на сервере (использую HTTP).

Вопрос: каким образом можно получить список измененных/добавленных строк другим пользователем без перезапуска программы и полной загрузки всей базы?

Например: Client1 изменил какую-либо запись в БД; Client2, Client3 отправили "getUpdates", получили информацию с этим обновлением и "отрисовали" у себя в интерфейсе

Спасибо.

UPD:

  1. Создал таблицу Actions, в которую вношу информацию об изменениях в БД: [ Id | Table | Action | RowId | Date ]. При получении "сервером" инфы, вносим название измененной таблицы, произведенное действие, измененную строку и время, в которое это действие было совершено.

  2. Создал таблицу Sessions, в которой храню ClientId и UpdatedDateTime. Сессию создает сервер при авторизации клиента и передает ClientId клиенту, UpdatedDateTime изначально равен времени входа пользователя.

  3. Клиент каждые n-минут посылает запрос к серверу, передавая свой ClientId. Получаем UpdatedDateTime по переданному ClientId и делаем выборку из таблицы Actions. (Actions.Date > Sessions.UpdatedDateTime) Шлём инфу об изменениях клиенту.

  4. При получении обновленных данных, клиент добавляет их в свою (локальную) БД и "отчитывается" перед сервером о получении.

  5. Сервер получает инфу о том, что клиент обновился и вносит текущее время в UpdatedDateTime. (и возвращаемся к пункту 3)

  6. Profit?

Откомментируйте, пожалуйста, нормален ли такой подход к обновлениям?)

READ ALSO
open server или ручная настройка?

open server или ручная настройка?

Здраствуйте подскажите что лучше и в чем разница? Скачать Open Server или скачать все ручно MySQL PHP Apache

270
Счётчик юзеров онлайн и запись в бд, PHP

Счётчик юзеров онлайн и запись в бд, PHP

На главной странице админки добавить показатель юзеров онлайн на сайте сейчасНужно учесть

270
транзакция выполняется частично

транзакция выполняется частично

господа, прошу объяснить элементарное

135
Как увязать два запроса в БД

Как увязать два запроса в БД

подскажите пожалуйста как в коде прописать два запроса в БД Таблица, пользователи и таблица платеж, в отдельности запросы работают, а вместе...

184