Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vardius/peer-data
Library for files, media streaming/sharing using WebRTC
https://github.com/vardius/peer-data
peer webrtc
Last synced: 14 days ago
JSON representation
Library for files, media streaming/sharing using WebRTC
- Host: GitHub
- URL: https://github.com/vardius/peer-data
- Owner: vardius
- License: mit
- Created: 2016-11-22T14:44:50.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T17:32:20.000Z (almost 2 years ago)
- Last Synced: 2024-10-14T06:09:02.756Z (27 days ago)
- Topics: peer, webrtc
- Language: JavaScript
- Homepage: https://rafallorenz.com/peer-data
- Size: 3.37 MB
- Stars: 64
- Watchers: 4
- Forks: 10
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# PeerData
[![Build Status](https://travis-ci.org/vardius/peer-data.svg?branch=master)](https://travis-ci.org/vardius/peer-data)
[![npm version](https://img.shields.io/npm/v/peer-data.svg)](https://www.npmjs.com/package/peer-data)
[![npm downloads](https://img.shields.io/npm/dm/peer-data.svg)](https://www.npmjs.com/package/peer-data)
[![license](https://img.shields.io/github/license/vardius/peer-data.svg)](LICENSE)PeerData is a library for bidirectional peer-to-peer transfers of arbitrary data using [RTCDataChannel](https://developer.mozilla.org/pl/docs/Web/API/RTCDataChannel). Simple *WebRTC* wrapper providing data channel abstraction.
[WebRTC](https://webrtc.org/) needs a messaging service to set up and maintain a *WebRTC* call.
The sender and receiver *RTCPeerConnections* run in web pages on different devices, and we need a way for them to communicate metadata.
For this, we use a signaling server: a server that can pass messages between *WebRTC* clients (peers).[PeerDataServer](https://github.com/vardius/peer-data-server) - An **ready to use** example of signaling server on *Node* using [socket.io](http://socket.io/).
π ABOUT
==================================================
Contributors:* [RafaΕ Lorenz](https://rafallorenz.com)
Want to contribute ? Feel free to send pull requests!
Have problems, bugs, feature ideas?
We are using the github [issue tracker](https://github.com/vardius/peer-data/issues) to manage them.## π Documentation
For **documentation** (_including examples_), **visit [rafallorenz.com/peer-data](https://rafallorenz.com/peer-data)**
π HOW TO USE
==================================================1. [Chat Example](https://github.com/vardius/webrtc-chat)
2. [React Chat Example](https://github.com/vardius/react-webrtc-chat)
3. [React Hook](https://github.com/vardius/react-peer-data)## Installation
```bash
$ npm install peer-data
```## Basic example
```typescript
import PeerData, { EventDispatcher, SocketChannel } from 'peer-data';const constraints = {ordered: true};
const servers = {
iceServers: [
{urls: "stun:stun.1.google.com:19302"}
]
};const dispatcher = new EventDispatcher();
const peerData = new PeerData(dispatcher, servers, constraints);
const signaling = new SocketChannel(dispatcher, 'http://localhost:8080');const room = peerData.connect('test-room');
room.on("participant", participant => {
participant.on("message", payload => console.log("message", payload));participant.send('Hi mate! this is private message.');
})
```For how to **disconnect**, **close connection** and handle errors please check [documentation](https://rafallorenz.com/peer-data/docs/client).
π [License](LICENSE.md)
-------This package is released under the MIT license. See the complete license in the package