Resumen
¿Necesitas elegir un modo rápido? Empieza por Comparación de transportes.
Modelo de ecosistema
Enlace al encabezadoLa idea de fondo es un ecosistema de extensiones en el que:
- cualquier producto puede publicar una superficie de extensibilidad;
- equipos de terceros pueden distribuir extensiones remotas de manera independiente;
@omnicajs/vue-remotesincroniza árboles de UI entre el entorno host y los entornos remotos.
Alcance de esta biblioteca
Enlace al encabezado@omnicajs/vue-remote cubre únicamente la sincronización del render:
- Host:
createProvider,createReceiver,HostedTree. - Remoto:
createRemoteRoot,createRemoteRenderer,defineRemoteComponent. - Las actualizaciones viajan sobre un contrato de canal cuya implementación de transporte puede cambiarse.
Queda fuera del alcance, de forma intencional:
- contratos de datos del negocio y APIs del producto;
- descubrimiento de extensiones, autenticación, facturación y gobierno;
- políticas de marketplace y flujos de cumplimiento;
- la operación completa de una plataforma de extensiones.
Topología recomendada
Enlace al encabezadoLo ideal es entregar el producto host y las extensiones remotas por separado.
host-product/ src/ extensions/ host-components/ runtime/ hostBridge.ts
remote-extension/ src/ entry.ts App.vue bridge/Capas del entorno
Enlace al encabezado- Capa de provider de UI:
componentes host publicados mediante
createProvider(...). - Capa de transporte del entorno: iframe, worker, window, MessagePort, IPC de escritorio, socket, etc.
- Capa de integración con el producto: métodos y datos propios del negocio.
- Capa de seguridad: validación de capacidades y aplicación de políticas de ciclo de vida.
Contrato de arranque
Enlace al encabezadoSin importar el transporte, conviene mantener estable este flujo:
- El host inicializa el contenedor del entorno y el receiver.
- El remoto expone
run/release. - El host llama a
run(channel, hostBridge). - El remoto monta y actualiza la UI por medio del canal.
- La sesión termina con
release().
Cómo elegir un transporte
Enlace al encabezado- Aislamiento estándar en navegador: Integración con iframe.
- Entorno en worker: Runtime de Web Worker.
- Entorno en popup: Transporte Window.
- Conexión explícita por canal: Transporte MessagePort.
- Puente entre procesos de escritorio: Transporte IPC de escritorio.
- Puente de red o de sesión: Transporte Socket.
- Un solo entorno para desarrollo y pruebas: Transporte en memoria.
Si estás explorando escenarios fuera de la base recomendada o más orientados a investigación, revisa Capacidades experimentales.