Pakete, Repositories und App-Kategorien suchen

Cover von laravel_echo
Paketdetailsv0.2.9

laravel_echo

Portierung des offiziellen Laravel Echo-Pakets für Ihre Flutter-Apps.

30-Tage-Downloads
850
Likes
68
Pub-Punkte
30

Paket installieren

flutter pub add laravel_echo

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter/Dart-Paket, das die Funktionalität von Laravel Echo in mobilen Anwendungen bereitstellt und Echtzeitkommunikation über WebSockets ermöglicht. Es erlaubt Flutter-Anwendungen, Ereignisse aus einem auf Laravel basierenden Backend – wie Benachrichtigungen, Chat-Nachrichten oder Live-Updates – direkt vom Server zu empfangen. Das Paket ist für eine nahtlose Integration mit dem Broadcast-System von Laravel konzipiert und unterstützt Kanäle sowie private und öffentliche Ereignisabonnements. Es ist ideal für Entwickler, die Echtzeitfunktionen in Flutter-Anwendungen mit Laravel als Backend erstellen.

Anwendungsfälle

  • Echtzeit-Chats-Anwendungen
  • Live-Benachrichtigungssysteme
  • ereignisgesteuerte UI-Updates
  • Laravel Backend-Integration
  • Kooperative Web-App-Funktionen

Hauptmerkmale

  • Echtzeitkommunikation auf Basis von WebSocket
  • Unterstützung für private und öffentliche Kanäle
  • Integration mit Laravel Broadcasting
  • Ereignis-Listener-Callbacks
  • Einfache Abonnementverwaltung

Geeignet für

  • Flutter-Apps mit Laravel-Backends
  • Entwickler, die mit Laravel Echo vertraut sind
  • Implementierung von Echtzeitfunktionen
  • Full-Stack-Flutter- und Laravel-Projekte
  • Apps, die eine Echtzeit-Daten-Synchronisierung erfordern

Hinweise

  • Erfordert einen Laravel-Backend mit konfigurierter Broadcast-Funktion
  • Beschränkt auf WebSocket-Transport
  • Keine integrierten Fallback-Mechanismen
  • Abhängig von der externen Server-Einrichtung
  • plattformunabhängig, erfordert jedoch Netzwerkverbindung

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

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

Kategorien

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.