PeerJS: Peer-to-peer đơn giản với WebRTC
PeerJS cung cấp một API peer-to-peer hoàn chỉnh, có thể tùy chỉnh và dễ sử dụng được xây dựng trên nền WebRTC, hỗ trợ cả các kênh dữ liệu và luồng phương tiện.
Cài Đặt
Thêm thư viện
với npm: npm install peerjs
với yarn: yarn add peerjs
// The usage -
import { Peer } from "peerjs";
Tạo một 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.
Kết nối dữ liệu
Kết nối
const conn = peer.connect("another-peers-id");
conn.on("open", () => {
conn.send("hi!");
});
Nhận
peer.on("connection", (conn) => {
conn.on("data", (data) => {
// Will print 'hi!'
console.log(data);
});
conn.on("open", () => {
conn.send("hello!");
});
});
Cuộc gọi phương tiện
Gọi
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);
},
);
Trả lời
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);
},
);
});
Chạy kiểm tra
npm test
Hỗ trợ trình duyệt
Firefox|
Chrome|
Safari
—|—|—
phiên bản cuối cùng| 4 phiên bản cuối cùng| 12.1+
Safari
. Safari chỉ hỗ trợ dữ liệu chuỗi khi gửi qua DataConnection. Sử dụng kiểu chuyển đổi JSON nếu bạn muốn giao tiếp với Safari. Mặc định, DataConnection sử dụng kiểu chuyển đổi Binary.
Câu hỏi thường gặp
Q. Tôi thấy một thông báo Phụ thuộc quan trọng: yêu cầu của một phụ thuộc là một biểu thức
trong console của trình duyệt
A. Thông báo này xuất hiện khi bạn sử dụng PeerJS với Webpack. Nó không quan trọng! Nó liên quan đến Parcel https://github.com/parcel-bundler/parcel/issues/2883 Chúng tôi sẽ giải quyết nó khi cập nhật lên Parcel V2.
Liên kết
Documentation / API Reference
PeerServer
Discuss PeerJS on our Telegram Channel
Changelog
https://t.me/joinchat/VWI0UBxnG7f7_DV7
Ví dụ Trực Tiếp
Dưới đây là một ứng dụng ví dụ sử dụng cả kết nối phương tiện và dữ liệu: https://glitch.com/~peerjs-video. Ví dụ cũng sử dụng riêng của nó PeerServer.
Chi Tiết Tải Về:
Tác Giả: peers
Mã Nguồn: https://github.com/peers/peerjs
Giấy Phép: MIT license