Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.5.6

peerdart

Peer-to-peer simples com WebRTC para Dart. Port de PeerJS para Flutter.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
481
Curtidas
78
Pontos Pub
135

Instalar pacote

flutter pub add peerdart

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

peerdart é um pacote Dart que permite comunicação ponto a ponto simples usando WebRTC, servindo como uma versão compatível com Flutter do PeerJS. Ele facilita a troca em tempo real de dados e mídia entre dispositivos sem exigir um servidor central para roteamento. Projetado para conexões de baixa latência, suporta comunicação direta entre dispositivos em múltiplas plataformas, incluindo Android, iOS, macOS, Windows e Linux. Ideal para aplicações que precisam de conectividade instantânea, como chamadas de vídeo, transmissão ao vivo ou ferramentas colaborativas.

Casos de uso

  • Chamada de vídeo em tempo real
  • Transmissão ao vivo
  • Aplicações colaborativas
  • Mensagens diretas para dispositivos
  • Aplicativos de bate-papo baseados em WebRTC

Principais recursos

  • Conexões P2P alimentadas pelo WebRTC
  • Suporte multiplataforma
  • API simples semelhante ao PeerJS
  • Suporta canais de dados e mídia
  • Tratamento automático de ICE/STUN

Indicado para

  • Desenvolvedores criando aplicativos em tempo real no Flutter
  • Projetos que exigem comunicação direta com dispositivos
  • Aplicativos direcionados para múltiplos sistemas operacionais
  • Prototipagem de recursos do WebRTC
  • Experiências interativas de baixa latência

Considerações

  • Requer configuração de rede (firewall/NAT)
  • Depende do servidor de sinalização para configuração da conexão
  • Suporte limitado ao navegador (somente Flutter)
  • O desempenho varia com a qualidade da rede
  • Pode ser necessário servidores TURN para travessia de NAT

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

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.

Categorias

Dependências

Lista de dependências 5 itens

Repositório-fonte

Projetos que usam este pacote