Keine Beschreibung

afrokick af5c51c70f add FAQ section to README vor 5 Jahren
dist db187161eb fix #568 and bump version to 1.0.4 vor 5 Jahren
docs c4b4ca300b update docs vor 6 Jahren
examples 3e52dddeff Bump lodash from 4.17.11 to 4.17.15 in /examples vor 6 Jahren
lib db187161eb fix #568 and bump version to 1.0.4 vor 5 Jahren
test 477deb9181 fix properly import webrtc-adapter vor 6 Jahren
.gitignore 662c877959 ignore .idea vor 6 Jahren
LICENSE fc7c88d3e3 Update LICENSE vor 10 Jahren
README.md af5c51c70f add FAQ section to README vor 5 Jahren
changelog.md db187161eb fix #568 and bump version to 1.0.4 vor 5 Jahren
index.d.ts 2c314e6cfc add sdpTransform to answer method vor 6 Jahren
package.json db187161eb fix #568 and bump version to 1.0.4 vor 5 Jahren
tsconfig.json c47ed25d87 change tsconfig target to es5 because issue https://github.com/Microsoft/TypeScript-Babel-Starter/issues/26 vor 6 Jahren

README.md

PeerJS: Simple peer-to-peer with WebRTC

https://t.me/joinchat/ENhPuhTvhm8WlIxTjQf7Og

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.

Setup

Include the library

with npm:

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

Create a Peer

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

const conn = 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) => {
  const call = 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

FAQ

Q. I have a message Critical dependency: the request of a dependency is an expression in browser's console A. The message occurs when you use PeerJS with Webpack. It is not critical! It relates to Parcel https://github.com/parcel-bundler/parcel/issues/2883 We'll resolve it when updated to Parcel V2.

Links

Documentation / API Reference

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.