react-native-webrtc-simple
A simple and easy to use module that help in making video call for React Native.
Implemented using react-native-webrtc .
npm install react - native - webrtc - simple -- save
or
yarn add react - native - webrtc - simple
Now we need to install react-native-webrtc
Method
Description
start
Create connections
stop
Stop connections
getSessionId
Get your session id
getLocalStream
Get your video stream
getRemoteStream
Get remote video stream
listenings
Listenings call events
events
Method call events
Value
Type
Description
optional
Object or null
Option peer configuration (https://peerjs.com/ )
key
String
Your session id
WebrtcSimple.listenings.callEvents
Value
Type
Description
START_CALL
String
Your start call status
RECEIVED_CALL
String
Call received status
ACCEPT_CALL
String
Call aceept status
END_CALL
String
Call end status
MESSAGE
String
Listenings a message
Method
Params
Description
call
sessionId:String, data:any
Initiate a call
acceptCall
No
Accept a call
endCall
No
Reject a call
switchCamera
No
Switch camera
videoEnable
No
On/Off video
audioEnable
No
On/Off audio
message
data:any
Events send message
WebrtcSimple.listenings.callEvents
Value
Type
Description
START_GROUP_CALL
String
Your start call status
RECEIVED_GROUP_CALL
String
Call received status
JOIN_GROUP_CALL
String
Call received status
LEAVE_GROUP_CALL
String
Call reject status
Method
Params
Description
groupCall
groupSessionId: string[], userData: object = {}
Start group call
joinGroup
arrSessionId: string[]
Join group call
leaveGroup
No
Leave group call
addStream
sessionId: string
Create a stream
switchCamera
No
Switch camera
videoEnable
No
On/Off video
audioEnable
No
On/Off audio
message
data:any
Events send message
import WebrtcSimple from 'react-native-webrtc-simple' ;
useEffect ( ( ) => {
const configuration = {
optional : null ,
key : Math . random ( ) . toString ( 36 ) . substr ( 2 , 4 ) , //optional
} ;
WebrtcSimple . start ( configuration )
. then ( ( status ) => {
if ( status ) {
const stream = WebrtcSimple . getLocalStream ( ) ;
console . log ( 'My stream: ' , stream ) ;
WebrtcSimple . getSessionId ( ( id : string ) => {
console . log ( 'UserId: ' , id ) ;
} ) ;
}
} )
. catch ( ) ;
WebrtcSimple . listenings . callEvents ( ( type , userData ) => {
console . log ( 'Type: ' , type ) ;
// START_CALL
// RECEIVED_CALL
// ACCEPT_CALL
// END_CALL
// MESSAGE
// START_GROUP_CALL
// RECEIVED_GROUP_CALL
// JOIN_GROUP_CALL
// LEAVE_GROUP_CALL
} ) ;
WebrtcSimple . listenings . getRemoteStream ( ( remoteStream ) => {
console . log ( 'Remote stream' , remoteStream ) ;
} ) ;
} , [ ] ) ;
const callToUser = ( userId ) => {
const data = { } ;
WebrtcSimple . events . call ( userId , data ) ;
} ;
const acceptCall = ( ) => {
WebrtcSimple . events . acceptCall ( ) ;
} ;
const endCall = ( ) => {
WebrtcSimple . events . endCall ( ) ;
} ;
const switchCamera = ( ) => {
WebrtcSimple . events . switchCamera ( ) ;
} ;
const video = ( enable : boolean ) => {
WebrtcSimple . events . videoEnable ( enable ) ;
} ;
const audio = ( enable : boolean ) => {
WebrtcSimple . events . audioEnable ( enable ) ;
} ;
const sendMessage = ( message : any ) => {
WebrtcSimple . events . message ( message ) ;
} ;
const groupCall = ( sessionId : string [ ] ) => {
const data = { } ;
WebrtcSimple . events . groupCall ( sessionId , data ) ;
} ;
const joinGroup = ( groupSessionId : string [ ] ) => {
WebrtcSimple . events . joinGroup ( groupSessionId ) ;
} ;
const leaveGroup = ( ) => {
WebrtcSimple . events . leaveGroup ( ) ;
} ;