작성된 Laravel 개발 환경 - macOS 14.3.1 - PHP 8.2.26 - Laravel Installer 5.10.0 - laravel/laravel (v11.3.3)
1. Reverb 서버 실행
* Assets 사용을 위한 빌드 - npm build realtime-with-laravel-reverb $ npm run dev * Reverb 서버 디버그 옵션으로 실행 realtime-with-laravel-reverb $php artisan reverb:start --debug
2. Channel 등록
routes>channels.php 파일을 열어서 channel을 추가 'chat' 채널 사용을 위해 추가
3. Event 등록
* Event 등록하여 이벤트를 Broadcasting 하도록 설정 realtime-with-laravel-reverb $ php artisan make:event Example * PrivateChannel에서 (Public)Channel, 'chat' 채널명으로 변경하여 테스트 * Event > Example 클래스를 ShoulBroadcastNow 구현 class Exampleimplements ShouldBroadcastNow
1. ShouldBroadcast:
• 이벤트가 큐(queue)에 저장된 후, 백그라운드 작업을 통해 브로드캐스트됩니다. • 비동기 처리로 이벤트가 전송되기 때문에 메인 애플리케이션의 실행 흐름을 방해하지 않습니다. • 큐 설정 및 실행이 필요합니다.
2. ShouldBroadcastNow:
• 이벤트가 즉시 브로드캐스트됩니다. • 큐에 저장되지 않고 동기적으로 처리되기 때문에 즉각적으로 클라이언트에 전송됩니다. • 큐 시스템이 설정되어 있지 않더라도 작동합니다.
1) ShouldBroadcastNow 인터페이스를 구현하면 이벤트가 즉시 브로드캐스트됩니다.
2) broadcastOn() 메서드에서 브로드캐스트할 채널을 설정합니다.
3) broadcastAs() 메서드를 사용해 이벤트의 이름을 설정할 수 있습니다.
ShouldBroadcastNow는 큐를 사용하지 않고 즉시 처리해야 할 때 유용합니다. 하지만 동기 처리이기 때문에 애플리케이션 성능에 주의해야 합니다.
3. Routes에 Broadcasting 하도록 추가 (web.php)
Route::get('/broadcast', function () { broadcast(new Example()); });
4. Laravel 웹서버 실행
realtime-with-laravel-reverb $ php artisan serve http://realtime-with-laravel-reverb.test:8000회원가입 > 로그인 이후 Dashborad 페이지
5. Example (Event) > Broadcasting 하고 받은 메시지 확인
* Broadcasting URL 호출하기 http://realtime-with-laravel-reverb.test:8000/broadcast Control Frame Received ( null )