패키지, 저장소 및 앱 카테고리 검색

laravel_echo 표지
패키지 상세v0.2.9

laravel_echo

귀하의 Flutter 앱용 공식 Laravel Echo 패키지의 포트입니다.

30일 다운로드
850
좋아요
68
Pub 점수
30

패키지 설치

flutter pub add laravel_echo

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Flutter/Dart 패키지로, 모바일 애플리케이션에 Laravel Echo의 기능을 가져와 WebSocket을 통해 실시간 통신을 가능하게 합니다. Flutter 앱이 Laravel 기반 백엔드 이벤트(알림, 채팅 메시지, 실시간 업데이트 등)를 서버에서 직접 수신할 수 있도록 해줍니다. Laravel의 브로드캐스팅 시스템과 원활하게 통합되도록 설계되었으며, 채널 및 개인/공개 이벤트 구독을 지원합니다. Laravel을 백엔드로 사용하여 Flutter 앱에 실시간 기능을 개발하는 개발자에게 이상적인 선택입니다.

사용 사례

  • 실시간 채팅 애플리케이션
  • 라이브 알림 시스템
  • 이벤트 기반 UI 업데이트
  • Laravel 백엔드 통합
  • 협업 웹 앱 기능

주요 기능

  • WebSocket 기반의 실시간 통신
  • 개인 및 공개 채널 지원
  • Laravel 브로드캐스팅과의 통합
  • 이벤트 리스너 콜백
  • 간단한 구독 관리

적합한 대상

  • Laravel 백엔드를 갖춘 Flutter 앱
  • Laravel Echo에 익숙한 개발자
  • 실시간 기능 구현
  • 풀스택 플러터 및 라라벨 프로젝트
  • 실시간 데이터 동기화가 필요한 앱

고려 사항

  • 방송이 구성된 Laravel 백엔드가 필요합니다
  • WebSocket 전송에 제한됨
  • 내장된 백업 메커니즘이 없음
  • 외부 서버 설정에 따라 다릅니다
  • 플랫폼에 관계없이 사용 가능하지만 네트워크 연결이 필요

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Laravel Echo for Flutter

Basically, this package is port of official Laravel Echo javascript library. It helps subscribe to channels and listen for events broadcasted from your Laravel app.

API is mostly same as official Echo package, so everything in Official documentation should work.

Available connectors:

Screenshot

Getting started

Pusher

To use with Pusher, you need to install pusher_client for you Flutter app.

In your pubspec.yaml file:

dependencies:
  ...
  pusher_client: ^2.0.0
  laravel_echo: ^1.0.0

import laravel_echo and pusher_client

import 'package:laravel_echo/laravel_echo.dart';
import 'package:pusher_client/pusher_client.dart';
const String PUSHER_KEY = 'YOUR_PUSHER_KEY_HERE';
const String PUSHER_CLUSTER = 'YOUR_PUSHER_CLUSTER_HERE';
const String BEARER_TOKEN = 'YOUR_BEARER_TOKEN_HERE';
const String AUTH_URL = 'http://echo.test/api/broadcasting/auth';

PusherOptions options = PusherOptions(
  cluster: PUSHER_CLUSTER,
  auth: PusherAuth(
    AUTH_URL,
    headers: {
      'Authorization': 'Bearer $BEARER_TOKEN',
    },
  ),
);

// Create pusher client
PusherClient pusherClient = PusherClient(
  PUSHER_KEY,
  options,
  autoConnect: false,
  enableLogging: true,
);

// Create echo instance
Echo echo = new Echo(
  broadcaster: EchoBroadcasterType.Pusher,
  client: pusherClient,
);

// Listening public channel
echo.channel('public-channel').listen('PublicEvent', (e) {
  print(e);
});

// Accessing pusher instance
echo.connector.pusher.onConnectionStateChange((state) {
  print(state!.currentState.toString());
});
socket.io

To use with socket.io, you need to install socket_io_client for your Flutter app.

In your pubspec.yaml file:

dependencies:
  ...
  socket_io_client: ^1.0.1
  laravel_echo: ^1.0.0

import socket_io_client

import 'package:laravel_echo/laravel_echo.dart';
import 'package:socket_io_client/socket_io_client.dart' as IO;

usage

const String BEARER_TOKEN = 'YOUR_BEARER_TOKEN_HERE';

// Create socket.io client
IO.Socket socket = IO.io(
  'http://localhost:6001',
  IO.OptionBuilder()
      .disableAutoConnect()
      .setTransports(['websocket']).build(),
);

// Create echo instance
Echo echo = new Echo(
  broadcaster: EchoBroadcasterType.SocketIO,
  client: socket,
  options: {
    'auth': {
      'headers': {
        'Authorization': 'Bearer $BEARER_TOKEN',
      }
    },
  },
);

// Listening public channel
echo.channel('public-channel').listen('PublicEvent', (e) {
  print(e);
});

// Listening private channel
// Needs auth. See details how to authorize channel below in guides
echo.private('private-channel').listen('PrivateEvent', (e) {
  print(e);
});

// Listening presence channel
// Needs auth. See details how to authorize channel below in guides
echo.join('presence-channel')
  .here((users) {
    print(users);
  }).joining((user) {
    print(user);
  }).leaving((user) {
    print(user);
  }).listen('PresenceEvent', (e) {
    print(e);
  });

// Accessing socket instance
echo.connector.socket.onConnect((_) => print('connected'));
echo.connector.socket.onDisconnect((_) => print('disconnected'));

Guide

Options
Option Description Default
auth
authEndpoint /api/broadcasting/auth
broadcaster EchoBroadcasterType.Pusher
host Socket host http://localhost:6001
namespace Event namespace App.Events
... Any other options, passed as socket params

Sample backend

Backend used for example app could be found at echo-server

Credits

This package would not be existed without hard work of these awesome devs.

  • @chinloyal - maintainer of pusher_client
  • @rikolu - maintainer of socket_io_client
  • @heywhy - for initial Pusher intagration

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.