Video stream from client to server in NodeJS

Solution 1:

Server you should:

const bodyParser = require('body-parser')


app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(morgan('dev'))
// app.use("/users", auth)
app.use("/exam", video);

io.on('connection', (socket) => {
    console.log('CONNECTED');
    ss(socket).on('video', (stream, data) => {
        console.log('RECEIVED');
        const fileName = path.basename('test')
        stream.pipe(fs.createWriteStream(fileName))
    })
})
server.listen(3000)

and Client: param in a connect function is just "http://localhost:3000/", exclude route

var socket = io.connect('http://localhost:3000/');
var stream = ss.createStream();
var filename = './test.webm';
 
ss(socket).emit('video', stream, {name: filename});
fs.createReadStream(filename).pipe(stream);

At client: connect to a domain, not route: ref

At server: you placed io.on on a route, io.on is just listen when you call the route. if you want run when server starting, you should place io.on outside the route