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.
- reducer
- middleware
- action creators
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.
{
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
}
To import action creators.
import {actions} from 'redux-peer-connection'
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'
})
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...'
})
Once a connection is established, you can send data to the other peer via this method.
actions.sendData('hello, this is peer')
We use standard
and make sure to run npm test
before making a PR.