peerdart

Creator: coderz1093

Last updated:

Add to Cart

Description:

peerdart

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 #

✅ Alpha: Under heavy development
✅ 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.
copied to clipboard
Data connections #
Connect
const conn = peer.connect("another-peers-id");

conn.on("open").listen((name) {
conn.send("hi!");
})
copied to clipboard
Receive
peer.on<DataConnection>("connection").listen((connection) {

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

// ....
})
copied to clipboard
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;
});
});
});
copied to clipboard
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;
});
});
});
copied to clipboard
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.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.