|
преди 1 година | |
---|---|---|
.github | преди 1 година | |
__test__ | преди 1 година | |
e2e | преди 1 година | |
lib | преди 1 година | |
.deepsource.toml | преди 4 години | |
.gitignore | преди 2 години | |
.parcelrc | преди 3 години | |
.prettierignore | преди 3 години | |
.prettierrc.toml | преди 3 години | |
.releaserc.json | преди 3 години | |
CHANGELOG.md | преди 2 години | |
LICENSE | преди 10 години | |
README.md | преди 2 години | |
browserstack.err | преди 1 година | |
jest.config.cjs | преди 1 година | |
package-lock.json | преди 1 година | |
package.json | преди 1 година | |
renovate.json | преди 1 година | |
tsconfig.json | преди 1 година |
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 |
---|---|---|
last 4 versions | last 4 versions | 12.1+ |
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.