v0.5.6
peerdart
Dart용 간단한 피어 투 피어 WebRTC. Flutter용 PeerJS 포트.
78좋아요 32430일 다운로드135Pub 점수
AndroidiOSmacOSWindowsLinux
Dart용 간단한 피어 투 피어 WebRTC. PeerDart는 peerjs의 디자인을 반영합니다.
{"sdk":"flutter"}^1.1.0^4.1.0^0.13.1+hotfix.1^3.0.1^0.6.0^5.1.1{"sdk":"flutter"}아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
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..
Here's an example application that uses both media and data connections: Example
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.
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;
});
});
// ....
})
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;
});
});
});
See more at example.
Works both on mobile and web browsers (Chrome tested.).
PeerDart is licensed under the MIT License.