Эта статья описывает устаревшую версию режима Live Updates для DHTMLX Scheduler. Информацию о последней версии смотрите здесь.
Режим Live Update поддерживает синхронизацию данных между пользователями в реальном времени.
Когда один пользователь вносит изменения, они мгновенно отображаются у всех остальных.
В этом режиме используется библиотека сокетов Faye
для обеспечения быстрых и гибких обновлений без необходимости обновлять страницу (обновляется только соответствующий компонент).
Здесь вы найдете простой пошаговый гид по использованию этой функции.
Live updates работают путем трансляции изменений от одного подключенного клиента ко всем остальным. Для этого используется WebSocket-соединение, которое обеспечивает двустороннюю связь между клиентами и сервером.
В этой версии модуль Live Updates расширяет модуль DataProcessor
для использования клиентской библиотеки Faye
, а также серверного приложения, которое распределяет сообщения между клиентами.
Настройка включает три компонента:
DataProcessor
.Когда пользователь изменяет данные:
Для прохождения этого руководства вам потребуется рабочее приложение dhtmlxScheduler, интегрированное с серверной логикой, которая загружает данные из базы и сохраняет изменения обратно. (Подробнее здесь.)
Простой пример может выглядеть так:
<script>
function init() {
scheduler.init('scheduler_here', new Date(2025,5,24), "week");
scheduler.load("api/scheduler");
const dp = scheduler.createDataProcessor({
url: "/events",
mode: "REST"
});
}
</script>
Данная реализация Live Updates устарела и не входит в основной пакет.
Чтобы включить режим Live Update, добавьте два дополнительных файла в фронтенд-приложение:
<script src="./lib/dhtmlxscheduler/live_updates.js"></script>
<script src="http://localhost:8008/client.js"></script>
В этом примере подключение идет напрямую к WebSocket-приложению. Обычно рекомендуется проксировать этот URL через основное приложение, чтобы скрыть адрес и порт вспомогательного сервиса. Это можно сделать, настроив reverse proxy.
Проксирование запросов через основное приложение (Node.js):
const httpProxy = require('http-proxy');
const proxy = httpProxy.createProxyServer({});
module.exports = function(app){
app.all("/liveUpdates*", function(req, res) {
proxy.web(req, res, {target: "http://localhost:8008"});
});
}
Фронтенд:
<script src="./lib/dhtmlxscheduler/live_updates.js"></script>
<script src="/liveUpdates/client.js"></script>
Активируйте режим, вызвав метод live_updates() у экземпляра DataProcessor
. Убедитесь, что DataProcessor
уже инициализирован. Метод принимает в качестве параметра URL точки входа WebSocket.
const dp = scheduler.createDataProcessor({
url: "/events",
mode: "REST"
});
dp.live_updates("/liveUpdates");
Полное демо-приложение можно скачать здесь.
Наверх