Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

327
Vistas
WebRTC en hosting compartido (SSH) sin nodejs, preferiblemente en php

Así que he estado buscando una manera de integrar webRTC en un sitio que estoy creando, pero quiero hacerlo en un alojamiento compartido. Encontré este repositorio en GitHub por nielsbaloe y ha sido de gran ayuda para obtener una conexión básica.

Este es el código que creo que es responsable de agregar el par: (index.html en el repositorio, línea)

 function icecandidate(localStream) { pc = new RTCPeerConnection(configuration); pc.onicecandidate = function (event) { if (event.candidate) { publish('client-candidate', event.candidate); } }; try { pc.addStream(localStream); }catch(e){ var tracks = localStream.getTracks(); for(var i=0;i<tracks.length;i++){ pc.addTrack(tracks[i], localStream); } } pc.ontrack = function (e) { document.getElementById('remoteVideo').style.display="block"; document.getElementById('localVideo').style.display="none"; remoteVideo.srcObject = e.streams[0]; }; }

Ahora, la lucha a la que me enfrento es agregar la funcionalidad de la sala, y tal vez la capacidad de tener más de dos pares concurrentes presentes al mismo tiempo. Hice algunos experimentos, pero en vano. Sé que para la funcionalidad de la sala, tengo que jugar en el php, así que al menos me gustaría descubrir cómo hacer posible más de 1 par.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hasta donde yo sé, no hay forma de reutilizar la misma RTCPeerConnection para múltiples pares, por lo que tendrá que hacer lo mismo que 1 a 1 pero entre cada par de un grupo.

En cuanto a la señalización, es bastante simple, es más o menos así:

Cliente A -> [Oferta] -> Servidor -> [Oferta] -> Cliente B -> [Respuesta] -> Servidor -> [Respuesta] -> Cliente A

Una mejor explicación en MDN

No hay necesariamente una necesidad de NodeJS o WebSocket. La razón por la que la mayoría de la gente lo elige es porque el último eslabón de esta cadena (Servidor -> Cliente A) requiere una conexión iniciada por el servidor. Pero eso se puede sustituir con técnicas alternativas como el sondeo (largo). O, en el caso de PHP, puede usar implementaciones de websocket como Bloatless o Aerys

Para implementar la funcionalidad de la sala, deberá implementar lo siguiente:

Variante A (mediante sondeo):

  • Un punto final para lanzar ofertas, por ejemplo, POST /rooms/{id}

  • Un punto final para buscar regularmente nuevas ofertas, por ejemplo, GET /rooms/{id}

Variante B (con websockets)

  • Cree salas de transmisión, por ejemplo, mediante la creación dinámica de puntos finales HTTP e instancias de servidor websocket. O al tener una sola instancia de websocket pero enviar cualquier habitación a la que pretenda unirse justo dentro después de establecer una conexión. A partir de ahí, solo es cuestión de enviar ofertas y respuestas correctas a los usuarios correctos.

En ambos casos, es posible que desee crear varias ofertas por adelantado para agruparlas desde el servidor o crear dinámicamente otras nuevas, pero, lo más importante, asegúrese de no conectar a los mismos pares dos veces, de lo contrario terminará con un bucle. Para evitarlo, solo proporcione a cada usuario una cadena generada aleatoriamente para identificarse y enviarla entre las ofertas.

Hay soluciones llave en mano disponibles si no quiere seguir esta ruta, pero tenga cuidado y verifique si puede usar sus propios servidores TURN con ellas. Una tendencia común que he notado es que hay muchos proveedores de soluciones WebRTC que lo atraen con su simplicidad pero luego lo bloquean con sus propios servidores TURN por los que es posible que tenga que pagar una factura bastante alta más adelante.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda