Mándamele
Volver a las guías

Guías

Cómo funciona una transferencia de navegador a navegador

El servidor organiza el encuentro; el contenido toma otra ruta. Seguir el flujo completo ayuda a entender tanto la privacidad como los fallos de conexión.

El código y la señalización pasan por el servicio. Tras la negociación, el contenido usa el DataChannel entre los dos navegadores.

El encuentro empieza con un código

Al pulsar «Enviar algo», el primer navegador abre un WebSocket y el Worker crea un código de seis caracteres. Un Durable Object mantiene el estado técnico de ese Pase: participantes, conexiones y tiempos de actividad. Un Pase anónimo nuevo ofrece diez minutos para que llegue el segundo navegador.

El código aparece también dentro de un enlace y un QR. Cualquiera de los dos dispositivos puede haberlo creado; esa decisión no determina quién enviará el archivo.

Llega el segundo navegador

El otro navegador normaliza el código y solicita entrar por su propio WebSocket. La configuración actual tiene desactivada la aprobación manual, así que una solicitud válida se aprueba automáticamente. El Pase admite al propietario y a un segundo participante; una entrada adicional se rechaza.

En este punto solo circulan mensajes de control. No existe un historial de textos o archivos esperando detrás del código.

Los navegadores negocian la ruta

El creador del Pase inicia un RTCPeerConnection y un DataChannel ordenado llamado «mandamele». Envía una oferta SDP por el WebSocket; el segundo navegador responde por el mismo canal, y ambos intercambian candidatos ICE. El Durable Object reenvía esos mensajes al identificador autorizado, sin convertirlos en contenido de transferencia.

La configuración usa el servicio STUN de Cloudflare para descubrir opciones de conectividad. No incluye TURN. Si NAT, VPN, cortafuegos o políticas de red impiden todas las rutas posibles, la negociación falla en lugar de subir el archivo al servidor.

El contenido cambia de camino

Los controles de envío se habilitan cuando ambos extremos confirman que el DataChannel está abierto. Los textos se serializan dentro de ese canal. Cada archivo comienza con metadatos validados y continúa en bloques binarios ordenados de 64 KiB.

El emisor hace una pausa si el búfer supera 1 MiB y continúa cuando baja hacia el umbral de 512 KiB. El receptor comprueba el tamaño previsto y crea un Blob local. Los archivos que superan 50 MB se rechazan antes de empezar.

La sesión termina en los extremos

El receptor puede previsualizar determinados textos o imágenes y descargar el archivo. Esas copias viven en el navegador o en el sistema del usuario, no en una bandeja de Mándamele. Cerrar el Pase libera las URL locales gestionadas por la interfaz, pero no elimina una descarga guardada.

Mientras está conectado, el cliente envía un ping de control cada 25 segundos. Un Pase anónimo se cierra tras treinta minutos sin actividad y puede terminar antes si una pestaña se cierra o un participante abandona.