ReactPHP를 사용하는 Laravel 웹 애플리케이션을 위한 중앙 시계

Laravel 웹 응용 프로그램에 대한 중앙 시계를 구현하는 방법은 무엇입니까?

중앙 시계가 필요한 이유는 무엇입니까?



퀴즈, 시간 추적, 온라인 교육, Pomodoro 타이머, 경매 및 기타 여러 웹 응용 프로그램에는 중앙 시계가 필요합니다.

이 시계의 시간은 모든 사용자가 자신의 웹 페이지에서 보는 시간입니다.

이러한 중앙 시계는 우리가 의지할 수 있는 유일한 장소인 서버에서 구현되어야 합니다. 사용자의 웹 페이지로 전송해야 합니다.

ReactPHP로 시계 실행하기



ReactPHP을 사용하여 주기적,

$timer = $loop->addPeriodicTimer($time, function() use(&$task) {
   broadcast(new TimeSignal(json_encode(...)));
});

또는 한 번,

$timer = $loop->addTimer($time, function() use(&$task) {
      broadcast(new TimedEvent(json_encode(...))); 
});

여기서 TimeSignalTimedEvent는 Laravel 이벤트입니다.

이벤트는 Laravel Echo Server , Laravel Websockets 또는 Soketi 을 사용하여 브로드캐스트됩니다. 채널에서 말하기time .

프런트 엔드에서 시간 신호 처리



자바스크립트



Laravel Echo을 사용하여 이벤트를 수신합니다.

window.Echo.channel('time')
  .listen('TimeSignal', (e) => {

  })
  .listen('TimedEvent', (e) => {

  });

활선



Livewire 구성 요소에서 리스너를 정의합니다.

protected $listeners = [
    'echo:time,TimeSignal' => 'processTimeSignal',
    'echo:time,TimedEvent' => 'processTimedEvent',
];

좋은 웹페이지 즐겨찾기