Documentación de
ReverbSend
Transferencia de archivos P2P segura mediante WebRTC y Laravel Reverb.
01. Descripción
ReverbSend es una herramienta de intercambio de archivos totalmente descentralizada. A diferencia de los servicios en la nube tradicionales, los archivos nunca se almacenan en un servidor intermedio; viajan directamente desde el dispositivo del emisor hasta el del receptor.
Aprovechando la potencia de WebRTC para la creación de canales de datos de alta velocidad y Laravel Reverb (WebSockets) para la señalización inicial, ReverbSend permite enviar archivos sin límite de tamaño de forma rápida, segura y anónima.
02. Arquitectura P2P & Señalización
El proceso se divide en dos fases: el "Apretón de manos" (Signaling) manejado por el servidor, y la transferencia de datos masiva manejada directamente por los navegadores o a través de un relé seguro.
SDP & ICE
03. Características principales
Cero Almacenamiento
Privacidad absoluta. Los archivos no tocan el disco duro del servidor; viajan cifrados de punto a punto (DTLS/SRTP).
Infraestructura Propia (TURN)
Implementa un servidor Coturn privado para evadir firewalls estrictos y routers con NAT Simétrico de las operadoras.
Señalización en Tiempo Real
Conexión instantánea a través de códigos efímeros de 8 caracteres utilizando Laravel Reverb y Livewire.
Gestión de Buffer Inteligente
Envío fragmentado adaptativo para evitar cuellos de botella y saturación de memoria RAM en archivos grandes.
04. Seguridad TURN y Credenciales
Para evitar el robo de ancho de banda del servidor Relay, ReverbSend utiliza una arquitectura REST API Auth. Las credenciales de WebRTC no son estáticas, sino que se generan dinámicamente mediante HMAC-SHA1 y tienen una vida útil de solo 10 minutos.
public function getTurnCredentials() {
// Generar token de vida limitada (10 min)
$secret = env('TURN_SECRET');
$timestamp = time() + 600;
$username = $timestamp . ':reverbsend';
return [
'username' => $username,
'password' => base64_encode(hash_hmac('sha1', $username, $secret, true))
];
}