# PeerJS: Simple peer-to-peer with WebRTC # ### https://t.me/joinchat/ENhPuhTvhm8WlIxTjQf7Og [![Backers on Open Collective](https://opencollective.com/peer/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/peer/sponsors/badge.svg)](#sponsors) 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: ```js import Peer from 'peerjs'; ``` **Create a Peer** ```javascript const peer = new 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** ```javascript const conn = peer.connect('another-peers-id'); conn.on('open', () => { conn.send('hi!'); }); ``` **Receive** ```javascript peer.on('connection', (conn) => { conn.on('data', (data) => { // Will print 'hi!' console.log(data); }); conn.on('open', () => { conn.send('hello!'); }); }); ``` ## Media calls **Call** ```javascript navigator.mediaDevices.getUserMedia({video: true, audio: true}, (stream) => { const call = peer.call('another-peers-id', stream); call.on('stream', (remoteStream) => { // Show stream in some