Skip to content

Repository files navigation

PeerJS: Simple peer-to-peer with WebRTC

Backers on Open CollectiveSponsors on Open Collective

PeerJS provides a complete, configurable, and easy-to-use peer-to-peer API built on top of WebRTC, supporting both data channels and media streams.

Setup

Include the library

with npm: npm install peerjs and the usage:

importPeerfrom'peerjs';

Create a Peer

constpeer=newPeer('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

constconn=peer.connect('another-peers-id');conn.on('open',()=>{conn.send('hi!');});

Receive

peer.on('connection',(conn)=>{conn.on('data',(data)=>{// Will print 'hi!'console.log(data);});});

Media calls

Call

navigator.mediaDevices.getUserMedia({video: true,audio: true},(stream)=>{constcall=peer.call('another-peers-id',stream);call.on('stream',(remoteStream)=>{// Show stream in some <video> element.});},(err)=>{console.error('Failed to get local stream',err);});

Answer

peer.on('call',(call)=>{navigator.mediaDevices.getUserMedia({video: true,audio: true},(stream)=>{call.answer(stream);// Answer the call with an A/V stream.call.on('stream',(remoteStream)=>{// Show stream in some <video> element.});},(err)=>{console.error('Failed to get local stream',err);});});

Running tests

npm test

Links

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

License

PeerJS is licensed under the MIT License.

About

Peer-to-peer data in the browser.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages