이 문서는 DHTMLX Scheduler의 레거시 Live Updates 모드에 대해 다룹니다. 최신 버전에 대한 정보는 여기에서 확인하세요.
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을 메인 앱을 통해 프록시하여, 보조 앱의 주소와 포트를 숨기는 것이 좋습니다. 이를 위해 리버스 프록시를 설정할 수 있습니다.
메인 앱을 통한 프록시 요청(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>
DataProcessor
인스턴스에서 live_updates() 메서드를 호출하여 해당 모드를 활성화합니다. 반드시 DataProcessor
가 먼저 초기화되어 있어야 하며, 메서드의 파라미터로 WebSocket 엔트리 포인트 URL을 전달합니다.
const dp = scheduler.createDataProcessor({
url: "/events",
mode: "REST"
});
dp.live_updates("/liveUpdates");
전체 데모 애플리케이션은 여기에서 다운로드할 수 있습니다.
맨 위로