Мгновенное добавление данных в веб-интерфейс при добавлении данных в базу данных (Ушахиди)

Я хотел бы в режиме реального времени обновлять мой вид карты, когда кто-то добавляет сообщение, не обновляя страницу в Ушахиди (проект веб-сайта с открытым исходным кодом). Его бэкэнд использует php (фреймворк Кохана) и базу данных MySQL, а интерфейс использует AngularJS. Там может быть не встроенный механизм по этому поводу. Поэтому я хочу узнать, какие материалы подходят.

Во-первых, мне нужно использовать управляемую событиями библиотеку, такую ​​как этот, обнаруживать изменения базы данных. Во-вторых, как обнаружить изменения в базе данных. В-третьих, используйте библиотеку на основе веб-сокетов, такую ​​как Socket.io, в режиме реального времени отправить данные на внешний интерфейс для отображения.

я прочитал echo особенность в фреймворке Laravel php, которая, кажется, подходит этому, но не в Kohana. Есть ли лучший подход в этой системе или хорошие ссылки? Спасибо

2

Решение

Давайте начнем с более простого вопроса: отправка уведомлений.
PHP не подходит в качестве сервера WebSocket (хотя вы можете сделать это). Лучше написать это в Node и уведомить об этом из PHP. Сервер WS будет продолжать отправлять уведомления. Вы также можете воспользоваться коммерческим сервисом, который сделает это.

Обнаружение изменений в базе данных: Если заявка была написана правильно (т.е. она использует ORMне сырой INSERT/UPDATE/DELETE/REPLACE запросов), то достаточно изменить save метод с использованием https://docs.koseven.ga/guide-api/ORM#changed данные.

Если есть несколько необработанных запросов, вы можете обработать их вручную.

В противном случае вы можете использовать триггеры. Отметить запись как обновленную (например: вставить данные в журнал / таблицу уведомлений). На сервере WebSocket вы можете периодически проверять эти данные и уведомлять получателей.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]