Pakete, Repositories und App-Kategorien suchen

Paketdetailsv0.5.6

peerdart

Einfacher Peer-to-Peer-WebRTC für Dart. PeerJS-Port für Flutter.

AndroidiOSmacOSWindowsLinux
30-Tage-Downloads
481
Likes
78
Pub-Punkte
135

Paket installieren

flutter pub add peerdart

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

peerdart ist ein Dart-Paket, das eine einfache P2P-Kommunikation mithilfe von WebRTC ermöglicht und als Flutter-kompatible Version von PeerJS dient. Es erleichtert den Echtzeit-Austausch von Daten und Medien zwischen Geräten, ohne dass ein zentraler Server für die Routing-Funktion erforderlich ist. Für Verbindungen mit geringer Latenz konzipiert, unterstützt es direkte Gerät-zu-Gerät-Kommunikation über mehrere Plattformen hinweg, darunter Android, iOS, macOS, Windows und Linux. Ideal für Anwendungen, die sofortige Verbindung benötigen, wie Videoanrufe, Live-Streaming oder kooperative Tools.

Anwendungsfälle

  • Echtzeit-Videoanrufe
  • Live-Streaming
  • Kooperative Anwendungen
  • Direkte Gerätemeldungen
  • WebRTC-basierte Chat-Apps

Hauptmerkmale

  • WebRTC-basierte P2P-Verbindungen
  • Plattformübergreifende Unterstützung
  • Einfache API ähnlich wie PeerJS
  • Unterstützt Daten- und Medienkanäle
  • Automatischer ICE/STUN-Handling

Geeignet für

  • Entwickler, die Echtzeit-Apps in Flutter erstellen
  • Projekte, die eine direkte Gerätekommunikation erfordern
  • Apps, die mehrere Betriebssysteme ansprechen
  • Prototyping von WebRTC-Funktionen
  • Low-Latency-Interaktive Erlebnisse

Hinweise

  • Benötigt Netzwerkkonfiguration (Firewall/NAT)
  • Hängt vom Signaling-Server für die Verbindungsaufnahme ab
  • Eingeschränkte Browser-Unterstützung (nur Flutter)
  • Die Leistung variiert je nach Netzqualität
  • Möglicherweise sind TURN-Server zur NAT-Durchquerung erforderlich

Original-README

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

PeerDart: Simple peer-to-peer with WebRTC

PeerDart provides a complete, configurable, and easy-to-use peer-to-peer API built on top of WebRTC, supporting both data channels and media streams.

PeerDart mirrors the design of peerjs. Find the documentation here..

Status

  • [x] Alpha: Under heavy development
  • [x] Public Alpha: Ready for testing. But go easy on us, there will be bugs and missing functionality.
  • [ ] Public Beta: Stable. No breaking changes expected in this version but possible bugs.
  • [ ] Public: Production-ready

Live Example

Here's an example application that uses both media and data connections: Example

Setup

Create a Peer

final Peer peer = Peer("pick-an-id");
// You can pick your own id or omit the id if you want to get a random one from the server.

Data connections

Connect

const conn = peer.connect("another-peers-id");

conn.on("open").listen((name) {
    conn.send("hi!");
})

Receive

peer.on<DataConnection>("connection").listen((connection) {

    // On peer closed.
    conn.on("close").listen((event) {
        setState(() {
            connected = false;
        });
    });

    // ....
})

Media calls

Call

final mediaStream = await navigator.mediaDevices
        .getUserMedia({"video": true, "audio": false});

    final conn = peer.call("peerId", mediaStream);

    // Do some stuff with stream
    conn.on<MediaStream>("stream").listen((event) {
      _remoteRenderer.srcObject = event;
      _localRenderer.srcObject = mediaStream;

      setState(() {
        inCall = true;
      });
    });
});

Answer

peer.on<MediaConnection>("call").listen((call) async {
    final mediaStream = await navigator.mediaDevices
        .getUserMedia({"video": true, "audio": false});

    call.answer(mediaStream);


    // on peer closed
    call.on("close").listen((event) {
        setState(() {
            inCall = false;
        });
    });

    // Get peer stream
    call.on<MediaStream>("stream").listen((event) {
        _localRenderer.srcObject = mediaStream;
        _remoteRenderer.srcObject = event;

        setState(() {
            inCall = true;
        });
    });
});

More examples

See more at example.

Support

Works both on mobile and web browsers (Chrome tested.).

Links

Documentation / API Reference
PeerServer

License

PeerDart is licensed under the MIT License.

Kategorien

Abhängigkeiten

Abhängigkeiten 5 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden