Skip to content

jcblw/redux-peer-connection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Redux peer connection

Build Status

Redux peer connection is a set of redux tools that enable peer to peer connections between two browsers. It uses simple peer under the hood.

Includes

  • reducer
  • middleware
  • action creators

Usage

Attaching it to the redux store.

import {createStore, applyMiddleware, combineReducers} from 'redux'
import {createReducer, middleware} from 'redux-peer-connection'

export const configStore = preload => {
  return createStore(
    combineReducers({
      peer: createReducer('peer') // create reducer with the key of peer
    }),
    preload,
    applyMiddleware(
      middleware // add middleware to redux
    )
  )
}

This should setup a key in your reducer, with some info about the peer connection in it.

Whats info is available

{
  channel: null, // the channel name eg. 'foo'
  isConnected: false, // the state of the connection
  isInitialized: false, // if a peer was created or not
  offer: null, // RTCPeerConnection.createOffer
  answer: null, // RTCPeerConnection.createAnswer
  data: [], // if data is being passed this will be an array of buffers
  stream: null // if video/audio is being passed this will be the incoming stream
}

Available action creators

To import action creators.

import {actions} from 'redux-peer-connection'
createPeer

Creates a peer connection, object passed to this function is then passed to a new instance of SimplePeer

actions.createPeer({
  initiator: true,
  channelName: 'my-p2p-app'
})
acceptSignal

Once somehow getting a signal from other peer. This can be an answer, offer, or ice canidate

actions.acceptSignal({
  type: 'offer',
  sdp: 'v=0\r\n...'
})
sendData

Once a connection is established, you can send data to the other peer via this method.

actions.sendData('hello, this is peer')

Contribute

We use standard and make sure to run npm test before making a PR.

About

Some redux tooling around creating peer to peer connections

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published