No Description

afrokick 33575aaff4 Merge branch 'master-github' into refactoring/classes 6 years ago
dist 33575aaff4 Merge branch 'master-github' into refactoring/classes 6 years ago
docs 03a5b02da6 Mention the correct default port. 10 years ago
examples 88e062dc33 dont ignore dist 6 years ago
lib d3ee51d6b7 refactoring ts classes 6 years ago
test 108fb8daf4 add simple test 6 years ago
.gitignore 88e062dc33 dont ignore dist 6 years ago
LICENSE fc7c88d3e3 Update LICENSE 10 years ago
README.md 56f9deb694 add Run Tests section to README 6 years ago
changelog.md 39cabdb588 fix(changelog): recovery old changelog 6 years ago
index.d.ts d3ee51d6b7 refactoring ts classes 6 years ago
package-lock.json 33575aaff4 Merge branch 'master-github' into refactoring/classes 6 years ago
package.json e25bbe4f40 update eventemmiter3 to 3.1.0 to support index.d.ts 6 years ago
yarn.lock a8f62112bf use parcel 6 years ago

README.md

Collaborators wanted!!

I'm too busy to improve PeerJS, but I don't want it to fall in dust so if anyone wants to become a maintainer, anyone is welcome!! I'll give support with any problem when coding and will be reviewing PRs. I'll also be in charge of the server and sysadmin things.

it is a good opportunity to gain experience too, if you think it's too big for you, don't worry! I'll be mentoring you (sometimes :) )

If you want to become a maintainer, you can write me to kidandcat@gmail.com

PeerJS: Simple peer-to-peer with WebRTC

Backers on Open Collective Sponsors 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.

http://peerjs.com

Setup

Include the library

with modules:

    `npm install peerjs` or `yarn add peerjs`
and the usage:
  import Peer from 'peerjs';

Create a Peer
Get a free API key. Your id only needs to be unique to the namespace of your API key.

var peer = new Peer('pick-an-id', {key: 'myapikey'}); 
// You can pick your own id or omit the id if you want to get a random one from the server.

Data connections

Connect

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

Receive

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

Media calls

Call

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

Answer

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

Run tests

npm test

Links

Documentation / API Reference

WebRTC Browser compatibility status

PeerServer

Discuss PeerJS on our Google Group

Changelog

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.