Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including peer-data with all npm packages installed. Try it out:

require("webrtc-adapter/package.json"); // webrtc-adapter is a peer dependency. var peerData = require("peer-data")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

peer-data v3.2.4

PeerData - library for files, media streaming/sharing using WebRTC


Build Status npm version npm downloads license


PeerData is a library for bidirectional peer-to-peer transfers of arbitrary data using RTCDataChannel. Simple WebRTC wrapper providing data channel abstraction.

WebRTC needs a messaging service to set up and maintain a WebRTC call.

The sender and receiver RTCPeerConnections run in web pages on different devices, and we need a way for them to communicate metadata. For this, we use a signaling server: a server that can pass messages between WebRTC clients (peers).

PeerDataServer - An ready to use example of signaling server on Node using



Want to contribute ? Feel free to send pull requests!

Have problems, bugs, feature ideas? We are using the github issue tracker to manage them.

📚 Documentation

For documentation (including examples), visit


  1. Chat Example
  2. React Chat Example
  3. React Hook


$ npm install peer-data

Basic example

import PeerData, { EventDispatcher, SocketChannel } from 'peer-data';

const constraints = {ordered: true};
const servers = {
  iceServers: [
    {urls: ""}

const dispatcher = new EventDispatcher();
const peerData = new PeerData(dispatcher, servers, constraints);
const signaling = new SocketChannel(dispatcher, 'http://localhost:8080');

const room = peerData.connect('test-room');

room.on("participant", participant => {
  participant.on("message", payload => console.log("message", payload));

  participant.send('Hi mate! this is private message.');

For how to disconnect, close connection and handle errors please check documentation.

📜 License

This package is released under the MIT license. See the complete license in the package:

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free