windmillcode_peerdart 1.5.4031  windmillcode_peerdart: ^1.5.4031 copied to clipboard
windmillcode_peerdart: ^1.5.4031 copied to clipboard
Simple peer-to-peer with WebRTC for Dart. PeerJS port for Flutter.
Windmillcode 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 (planned) media streams.
PeerDart mirrors the design of peerjs. Find the documentation here.
- supports socketio connections
- sends chunks based on maxMessageSize from local and remote session descriptions
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. (media is public alpha)
- ❌ Public: Production-ready
Setup #
Create a Peer
<!-- for development -->
final Peer peer = Peer(options:PeerOptions(
      // debug: LogLevel.All,
));
<!-- for production -->
final Peer peer = Peer(options:PeerOptions(
      // debug: LogLevel.All,
      clientType: "socketio",
      host: "[YOUR SERVER DOMAIN]",
      port: 9000,
      secure: true));
Data connections #
Connect
var peer;
if (peer?.id == null) {
    peer = Peer(options: APPENV.peerdart);
    wait peer!.init();
}
var conn = webrtc.connect(res.data.result["sender_peer_id"]);
conn.on("open",(data) async {
    conn.send("hi!");
})
Receive
if (peer?.id == null) {
    peer = Peer(options: APPENV.peerdart);
    wait peer!.init();
}
peer!.on("connection", (DataConnection? conn) {
    conn?.on("data", (dynamic data) async {
        <!-- work with your data -->
    })
})
Support #
Works on android
Reference #
| Property | Type | Default Value | Description | 
|---|---|---|---|
| debug | LogLevel? | LogLevel.Disabled | Log level for debugging. | 
| host | String? | util.CLOUD_HOST | Host address of the PeerServer. | 
| port | int? | util.CLOUD_PORT | Port on which the PeerServer is running. | 
| path | String? | "/" | Path to the PeerServer. | 
| key | String? | Peer.DEFAULT_KEY | API key for the PeerServer. | 
| token | String? | randomToken() | Token used for authentication. | 
| config | dynamic | util.defaultConfig | Configuration options for the RTC connection. | 
| secure | bool? | true | Whether the connection should be secure (https/wss). | 
| pingInterval | int? | null | Interval for sending ping messages to keep the connection alive. | 
| referrerPolicy | String? | "strict-origin-when-cross-origin" | Referrer policy for the HTTP requests. | 
| clientType | "websocket" | "socketio" | "websocket" | Type of client to use for the connection. | 
| logFunction | void Function(LogLevel logLevel, dynamic args)? | null | Custom log function. | 
| serializers | Map<String, DataConnection Function(String peerId, Peer provider, dynamic options)> | {} | Custom serializers for different data connection types. | 
Links #
Documentation / API Reference #
PeerServer #
License #
PeerDart is licensed under the MIT License.