Laravel 개발: Laravel Echo 및 Pusher를 사용하여 WebSocket 통신을 구현하는 방법은 무엇입니까?

PHPz
풀어 주다: 2023-06-13 17:01:38
원래의
1073명이 탐색했습니다.

Laravel은 확장성이 뛰어나고 효율적인 인기 있는 PHP 프레임워크로, 개발자가 고품질 웹 애플리케이션을 빠르게 구축할 수 있는 많은 강력한 도구와 라이브러리를 제공합니다. 그중 Laravel Echo와 Pusher는 WebSocket 통신을 쉽게 구현할 수 있는 두 가지 매우 중요한 도구입니다. 이 기사에서는 Laravel 애플리케이션에서 이 두 도구를 사용하는 방법을 자세히 설명합니다.

  1. WebSocket이란 무엇인가요?

WebSockets는 양방향 통신이 가능한 프로토콜로, 더 높은 실시간 및 더 빠른 데이터 전송을 달성할 수 있습니다. 기존 HTTP 요청과 비교하여 WebSocket은 요청이나 응답이 없더라도 연결 상태를 유지하고 클라이언트와 서버 간에 데이터를 전송할 수 있습니다. WebSocket은 더 나은 사용자 경험과 더 높은 애플리케이션 성능을 제공할 수 있으며 채팅 애플리케이션, 게임 등과 같은 다양한 실시간 애플리케이션 시나리오에서 사용될 수 있습니다.

  1. Laravel Echo 및 Pusher 소개

Laravel Echo는 클라이언트 측에서 실시간 통신 채널을 연결할 수 있도록 간단하고 일관된 API를 제공하는 이벤트 방송 프레임워크입니다. Echo는 Pusher에 의존하며, Pusher를 사용할 수 없는 경우 Redis를 대안으로 사용할 수 있습니다. Pusher는 애플리케이션에 실시간 기능을 쉽게 추가하는 데 도움이 되는 실시간 WebSockets 서비스입니다. Pusher는 더 나은 성능을 위해 모든 WebSockets 관리 작업을 타사 서비스로 오프로드할 수 있는 호스팅 솔루션입니다. 응용 프로그램의.

  1. Laravel Echo 및 Pusher 구성

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,
        ],
    ],
],
로그인 후 복사
  1. Pusher의 Laravel WebSocket을 사용하여 websocket 서버를 실행합니다.

Pusher에는 다음을 허용하는 오픈 소스 라이브러리 Laravel WebSocket이 있습니다. 자체 서버 서버에서 WebSocket을 실행할 수 있으므로 비용이 절감되고 성능과 유연성이 향상됩니다. 구체적인 작업은 다음과 같습니다.

  1. Laravel WebSockets를 실행하는 데 필요한 데이터베이스 테이블과 데이터를 설치합니다.

    php artisan websocket:install
    로그인 후 복사
  2. Laravel WebSockets에 필요한 구성을 입력합니다.

    php artisan websocket:publish
    로그인 후 복사
  3. 리스너 만들기(EventServiceProvider에서)
protected $listen = [
    'AppEventsExampleEvent' => [
        'AppListenersExampleListener',
    ],
];
로그인 후 복사
  1. 이벤트 처리

    <?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’));
로그인 후 복사
  1. 프런트 엔드에서 Laravel Echo 및 Pusher를 사용하는 방법

프런트 엔드에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿