Laravel은 확장성이 뛰어나고 효율적인 인기 있는 PHP 프레임워크로, 개발자가 고품질 웹 애플리케이션을 빠르게 구축할 수 있는 많은 강력한 도구와 라이브러리를 제공합니다. 그중 Laravel Echo와 Pusher는 WebSocket 통신을 쉽게 구현할 수 있는 두 가지 매우 중요한 도구입니다. 이 기사에서는 Laravel 애플리케이션에서 이 두 도구를 사용하는 방법을 자세히 설명합니다.
WebSockets는 양방향 통신이 가능한 프로토콜로, 더 높은 실시간 및 더 빠른 데이터 전송을 달성할 수 있습니다. 기존 HTTP 요청과 비교하여 WebSocket은 요청이나 응답이 없더라도 연결 상태를 유지하고 클라이언트와 서버 간에 데이터를 전송할 수 있습니다. WebSocket은 더 나은 사용자 경험과 더 높은 애플리케이션 성능을 제공할 수 있으며 채팅 애플리케이션, 게임 등과 같은 다양한 실시간 애플리케이션 시나리오에서 사용될 수 있습니다.
Laravel Echo는 클라이언트 측에서 실시간 통신 채널을 연결할 수 있도록 간단하고 일관된 API를 제공하는 이벤트 방송 프레임워크입니다. Echo는 Pusher에 의존하며, Pusher를 사용할 수 없는 경우 Redis를 대안으로 사용할 수 있습니다. Pusher는 애플리케이션에 실시간 기능을 쉽게 추가하는 데 도움이 되는 실시간 WebSockets 서비스입니다. Pusher는 더 나은 성능을 위해 모든 WebSockets 관리 작업을 타사 서비스로 오프로드할 수 있는 호스팅 솔루션입니다. 응용 프로그램의.
Laravel 프로젝트에서는 먼저 Echo 및 Pusher를 설치해야 합니다. Composer 명령을 사용하여 설치할 수 있습니다.
composer require pusher/pusher-php-server pusher/pusher-http-laravel beyondcode/laravel-websockets npm install --save laravel-echo pusher-js
설치가 완료된 후 Pusher 관련 정보를 구성해야 합니다. .env 파일에서:
PUSHER_APP_ID=your-app-id PUSHER_APP_KEY=your-app-key PUSHER_APP_SECRET=your-app-secret PUSHER_APP_CLUSTER=your-app-cluster
그런 다음 config/broadcasting.php 파일에서 Broadcaster를 pusher로 구성합니다:
'default' => env('BROADCAST_DRIVER', 'pusher'), 'connections' => [ 'pusher' => [ 'driver' => 'pusher', 'key' => env('PUSHER_APP_KEY'), 'secret' => env('PUSHER_APP_SECRET'), 'app_id' => env('PUSHER_APP_ID'), 'options' => [ 'cluster' => env('PUSHER_APP_CLUSTER'), 'encrypted' => true, ], ], ],
Pusher에는 다음을 허용하는 오픈 소스 라이브러리 Laravel WebSocket이 있습니다. 자체 서버 서버에서 WebSocket을 실행할 수 있으므로 비용이 절감되고 성능과 유연성이 향상됩니다. 구체적인 작업은 다음과 같습니다.
Laravel WebSockets를 실행하는 데 필요한 데이터베이스 테이블과 데이터를 설치합니다.
php artisan websocket:install
Laravel WebSockets에 필요한 구성을 입력합니다.
php artisan websocket:publish
protected $listen = [ 'AppEventsExampleEvent' => [ 'AppListenersExampleListener', ], ];
이벤트 처리
<?php namespace AppEvents; use IlluminateBroadcastingInteractsWithSockets; use IlluminateFoundationEventsDispatchable; use IlluminateQueueSerializesModels; class ExampleEvent { use Dispatchable, InteractsWithSockets, SerializesModels; public $data; public function __construct($data) { $this->data = $data; } public function broadcastOn() { return ['test_channel']; } public function broadcastAs() { return 'example-event'; } }
다음 코드를 사용하여 이벤트를 푸시할 수 있습니다.
use AppEventsExampleEvent; use IlluminateSupportFacadesEvent; Event::dispatch(new ExampleEvent(‘Example payload’, ‘Another example payload’));
프런트 엔드에서 Laravel Echo 및 Pusher를 사용하는 것은 매우 간단합니다. 기본적인 예는 다음과 같습니다.
import Echo from 'laravel-echo' import Pusher from 'pusher-js' let pusher = new Pusher(process.env.MIX_PUSHER_APP_KEY, { cluster: process.env.MIX_PUSHER_APP_CLUSTER, encrypted: true, }) let echo = new Echo({ broadcaster: 'pusher', key: process.env.MIX_PUSHER_APP_KEY, cluster: process.env.MIX_PUSHER_APP_CLUSTER, encrypted: true, auth: { headers: { ‘Authorization’: ‘Bearer {access_token}’, }, }, })
위의 방법을 통해 Laravel Echo 및 Pusher를 사용하여 Laravel 애플리케이션에서 WebSocket 통신을 구현할 수 있습니다.
요약
Laravel Echo와 Pusher는 매우 편리하고 빠른 WebSockets 솔루션을 제공하여 고성능 실시간 웹 애플리케이션을 빠르게 구축할 수 있도록 해줍니다. 이 기사에서는 Laravel Echo 및 Pusher를 구성하는 방법과 Pusher의 Laravel WebSocket을 사용하여 WebSocket 서버를 로컬로 구축하는 방법을 자세히 설명합니다. 동시에 Laravel Echo 및 Pusher는 프런트 엔드에서 WebSocket 서버에 연결하여 실시간 통신을 구현하는 데 사용됩니다. 능력.
위 내용은 Laravel 개발: Laravel Echo 및 Pusher를 사용하여 WebSocket 통신을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!