Antecedentes: Estoy tratando de poder crear un identificador único para cada cliente que se conecte y transmita a mi servicio, de modo que cada vez que realicen una nueva solicitud, pueda detectarlos y bloquearlos para que no vuelvan a transmitir desde mi sitio hasta que detengan la transmisión actual.
DESCARGO DE RESPONSABILIDAD: soy nuevo en la transmisión, esperaba que tal vez en el objeto Nueva solicitud en algún lugar pudiera saber si un usuario está transmitiendo. Creo que de alguna manera esto puede ser para la aplicación de socket.
Bellow es mi código hasta ahora. La idea es poder saber de alguna manera cuántas transmisiones transmite cada cliente (Broswer) cada vez que envía una solicitud a mi servidor.
app.get('/video', function (req, res) { const path = 'abc.mp4' const stat = fs.statSync(path) const fileSize = stat.size const range = req.headers.range if (range) { // console.log("Has range: ", range) const parts = range.replace(/bytes=/, "").split("-") const start = parseInt(parts[0], 10) const end = parts[1] ? parseInt(parts[1], 10) : fileSize - 1 const chunksize = (end - start) + 1 const file = fs.createReadStream(path, { start, end }) const head = { 'Content-Range': `bytes ${start}-${end}/${fileSize}`, 'Accept-Ranges': 'bytes', 'Content-Length': chunksize, 'Content-Type': 'video/mp4', 'MY_UNIQUE_ID': "Hello World" + new Date().toISOString() } res.writeHead(206, head) file.pipe(res) file.on("data", function (chunk) { if (!!req.headers) { //Expecting to also have MY_UNIQUE_ID console.log(req.headers) } }); } })