पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.5.6

peerdart

Dart के लिए सरल पीयर-टू-पीयर वेबआरटीसी। Flutter के लिए PeerJS पोर्ट।

AndroidiOSmacOSWindowsLinux
30-दिन डाउनलोड
481
लाइक
78
Pub अंक
135

पैकेज इंस्टॉल करें

flutter pub add peerdart

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

peerdart एक Dart पैकेज है जो WebRTC का उपयोग करके सरल बिंदु-से-बिंदु संचार की अनुमति देता है, जो PeerJS का Flutter-अनुकूलित संस्करण है। यह एक केंद्रीय सर्वर के लिए मार्गदर्शन के बिना उपकरणों के बीच वास्तविक समय में डेटा और मीडिया के आदान-प्रदान को सुगम बनाता है। कम लेटेंसी कनेक्शन के लिए डिज़ाइन किया गया है, यह Android, iOS, macOS, Windows और Linux जैसे कई प्लेटफॉर्मों पर उपकरणों के बीच सीधे संचार का समर्थन करता है। वीडियो कॉल, लाइव स्ट्रीमिंग या सहयोगात्मक उपकरणों जैसे ऐप्स के लिए आदर्श है।

उपयोग

  • रियल-टाइम वीडियो कॉलिंग
  • लाइव स्ट्रीमिंग
  • सहयोगात्मक एप्लिकेशन
  • प्रत्यक्ष उपकरण संदेश
  • WebRTC-आधारित चैट ऐप्स

मुख्य विशेषताएँ

  • WebRTC-संचालित P2P कनेक्शन
  • प्लेटफॉर्म के अनुकूल समर्थन
  • PeerJS के समान सरल API
  • डेटा और मीडिया चैनलों का समर्थन करता है
  • स्वचालित ICE/STUN संभाल

इनके लिए उपयुक्त

  • Flutter में रियल-टाइम एप्लिकेशन बनाने वाले डेवलपर्स
  • प्रत्यक्ष उपकरण संचार की आवश्यकता वाले प्रोजेक्ट
  • कई ऑपरेटिंग सिस्टम के लिए लक्षित ऐप्स
  • वेबआरटीसी फीचर्स के प्रोटोटाइपिंग
  • कम लेटेंसी वाले इंटरैक्टिव अनुभव

विचार योग्य बातें

  • नेटवर्क कॉन्फ़िगरेशन (फायरवॉल/NAT) की आवश्यकता होती है
  • कनेक्शन सेटअप के लिए सिग्नलिंग सर्वर पर निर्भर करता है
  • सीमित ब्राउज़र समर्थन (फ्लटर के लिए केवल)
  • प्रदर्शन नेटवर्क की गुणवत्ता के साथ बदलता है
  • NAT ट्रावर्सल के लिए TURN सर्वर की आवश्यकता हो सकती है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

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.

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 5 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट