|
2 ani în urmă | |
---|---|---|
.github | 3 ani în urmă | |
docs | 4 ani în urmă | |
lib | 3 ani în urmă | |
test | 3 ani în urmă | |
.deepsource.toml | 4 ani în urmă | |
.gitignore | 3 ani în urmă | |
.parcelrc | 3 ani în urmă | |
.prettierignore | 3 ani în urmă | |
.prettierrc.toml | 3 ani în urmă | |
.releaserc.json | 3 ani în urmă | |
CHANGELOG.md | 3 ani în urmă | |
LICENSE | 10 ani în urmă | |
README.md | 3 ani în urmă | |
package-lock.json | 3 ani în urmă | |
package.json | 2 ani în urmă | |
tsconfig.json | 3 ani în urmă |
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.
Here's an example application that uses both media and data connections: https://glitch.com/~peerjs-video. The example also uses its own PeerServer.
Include the library
with npm:
npm install peerjs
with yarn:
yarn add peerjs
// 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.
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);
});
conn.on("open", () => {
conn.send("hello!");
});
});
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);
},
);
});
npm test
![]() | Firefox![]() | Chrome
![]() | Safari
---|
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.
This project exists thanks to all the people who contribute.
Thank you to all our backers! [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
PeerJS is licensed under the MIT License.