subins2000 / simple-peer-files

A library to send files over WebRTC
Mozilla Public License 2.0
35 stars 9 forks source link
peer simplepeer transfers webrtc

WebRTC Simple File Transfer

A simple library to send & receive files over WebRTC data channels. All you need to pass is a simple-peer object, the file, and an ID!

Features

Examples

Apps Made With SPF

Simple Example

Open this webpage in two separate browser windows. This simple example is based on the example shown in simple-peer README

Sender :

import SimplePeerFiles from 'simple-peer-files'
const spf = new SimplePeerFiles()

function readyToSend () {
  // peer is the SimplePeer object connection to receiver
  spf.send(peer, 'myFileID', file).then(transfer => {
    transfer.on('progress', sentBytes => {
      console.log(sentBytes)
    })
    transfer.start()
  })
}

Receiver :

import SimplePeerFiles from 'simple-peer-files'
const spf = new SimplePeerFiles()

// peer is the SimplePeer object connection to sender
spf.receive(peer, 'myFileID').then(transfer => {
  transfer.on('progress', sentBytes => {
    console.log(sentBytes)
  })

  // Call readyToSend() in the sender side
  peer.send('heySenderYouCanSendNow')
})

You have to call spf.receive() in receiver before you call spf.send() in sender. This is to prepare the receiver to accept file before sending starts. This also allows to implement a functionality for the receiver to accept or reject the file.

Thanks to Andrew Bastin's justshare for being a reference in making this library.