I'm adding a video call function for my project and for that im thinking about using WebRTC

21 Views Asked by At

I can't find any proper course on WebRTC so i posted this question.In my project i'd like to implement video call function between 2 people (no group calls). How do i learn webRTC I created a basic code with HTML and js using webRTC

   <!DOCTYPE html>
<html lang="en">
    <head>
<meta charset="utf-8" />
       <title>MediaStream</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.1.2/socket.io.js"></script>
    </head>
<body>

   <center>   
        <video autoplay id="video"></video>
        
         <br>
        <button id="mute" onclick="toggleAudio()">Mute</button>
        <button  onclick="toggleVideo()">Toggle Video</button>
</center>
<script src="index.js"></script>

</body>
</html>

This is my JS Code

const options={
video:true,
audio:false
}

//this function is read when the stream is found

const mediaStreamSuccess=(stream)=>{
const vid=document.querySelector('#video')
//assign source object as stream
vid.srcObject=stream
}


 //error handling
const mediaStreamError=(error)=>{
console.log(error)
}

//navigate through media devices to get user media

navigator.mediaDevices.getUserMedia(options)
.then(mediaStreamSuccess)
.catch(mediaStreamError)


 function toggleAudio(){
   options.audio=!options.audio
   navigator.mediaDevices.getUserMedia(options)
   .then(mediaStreamSuccess).catch(mediaStreamError)

   }

function toggleVideo(){
    options.video=!options.video
    navigator.mediaDevices.getUserMedia(options)
    .then(mediaStreamSuccess).catch(mediaStreamError)
     }

This is my server code with socket.

 const express=require('express')
 const http=require('http')
 const socketIO=require('socket.io')
 const path=require('path')
 const { userInfo } = require('os')
 const app=express()
 //using socketIO instance by passing server to it

 const server=http.createServer(app)
 const io=socketIO(server)


 app.use(express.static(path.join(__dirname,'public')))


 app.get('/',(req,res)=>{
     res.sendFile(path.join(__dirname,'index.html'))
  })



//creating a server instance
io.on('connection',socket=>{
      console.log('user connected')
      io.emit('User logged in',{userInfo :socket.id})

      socket.on('disconnect',()=>{
           io.emit('User logged out',{userInfo :socket.id})

         })
   })



   server.listen(3000,()=>{
            console.log('listening at 3000')
   })

Here how do i secure video call and how do i use sockets for it.(I'm asking it bc i can't find much information about webRTC projects).

0

There are 0 best solutions below