* realtime with laravel reverb

작성된 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 Example implements 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 )

* Reverb 서버 종료하여 오류 메시지 확인

Reverb 서버 종료 후 Broadcasting 실행 시 발생되는 오류

+ Recent posts