Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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)

logo

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