Simple WebRTC. Wraps flutter_webrtc similar to simple-peer

Getting started

Read more about how to get started with webrtc in flutter_webrtc or the javascript simple-peer

Currently unsupported features (contributions welcome!)

  • Media channels (only data channels supported right now)
  • Batching of large data ie such as sending files byte by byte (needs to be handled in calling application right now)

Usage

var peer1 = Peer(initiator: true);
var peer2 = Peer();

peer1.onSignal = (data) async {
  // When peer1 has signaling data, give it to peer2 somehow
  // https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#the_signaling_server
  await peer2.signal(data);
};

peer2.onSignal = (data) async {
  // When peer2 has signaling data, give it to peer1 somehow
  // https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Signaling_and_video_calling#the_signaling_server
  await peer1.signal(data);
};

peer2.onData = (data) async {
  print(data); // hello!
};

peer2.connect();
await peer1.connect();

await peer1.send('hello!');

Example

Run the example/main.dart application and check that connection worked in console.

Release guide (for contributors)

  • Test by opening example and check logs that it works
  • Update CHANGELOG.md + pubspec.yml version
  • Run flutter pub publish

Libraries

simple_peer