2012-02-27 10 views
5

Necesito escribir un complemento para Chrome que, si se ejecuta en Windows y la URL del navegador coincide con algo específico, puede abrir una canalización con nombre a un determinado proceso ejecutándose en el sistema operativo.Plugin de Chrome: Accediendo a canalizaciones nombradas en Windows

¿Cuál es la mejor opción de complemento para Chrome? ¿Debo ir con un cliente nativo o puedo usar algo menos intrusivo (aunque me doy cuenta de que los tubos con nombre son, por definición, bastante intrusivos)?

+3

Mi comprensión de Native Client es su espacio aislado; Dudo seriamente que puedas hacer esto con NaCl. AFAIK la única otra opción es NSAPI. –

+0

Sí, eso es lo que esperaba, también. Tal vez solo busque usar un contenedor NSAPI entonces. ¡Aclamaciones! – dreijer

+1

¿Quisces decir NPAPI? Si es así, sí, puede usar el complemento NPAPI para ese fin ... También puede consultar Firebreath si está desarrollando el complemento NPAPI ... –

Respuesta

2

Native Client es, de hecho, espacio aislado, como se indica en los comentarios, y NPAPI está retirado.

dos soluciones actuales para comunicarse con una aplicación nativa funcionamiento son aquellos:

  1. Usar HTTP, opcionalmente con WebSockets, con la aplicación nativa (o una aplicación de proxy que se hable con una aplicación de terceros mediante cualquier método nativo, incluidas las tuberías) que actúa como un servidor en localhost y la extensión que intenta conectarse a un puerto conocido. GhostText es un ejemplo de esta arquitectura.

  2. Use Native Messaging. Es importante comprender las limitaciones de este enfoque:

    • Actúa como un conducto para un proceso externo, pero debe seguir el protocolo Native Messaging (basado en JSON).
    • No se puede conectar a un proceso en ejecución (o tubería): Chrome solo puede iniciar una nueva instancia del host nativo, y el contacto no se puede iniciar desde el exterior.

    Por lo tanto, teniendo en cuenta estas limitaciones, su host nativo sería un proxy que se adjuntará a la tubería nombrada en cuestión y retransmitirá los datos traduciéndolos al protocolo Native Messaging.

+0

¿Cómo se puede utilizar la mensajería nativa con las canalizaciones con nombre? ¿Necesito un proceso externo que tome datos JSON y luego se conecte a tuberías con nombre? O bien, ¿hay alguna forma de hacer STDIO con pipes con Native Messaging directamente? Para el contexto, necesito enviar dos flujos independientes a un proceso FFmpeg simultáneamente para que se fusionen, lo que requiere más de lo que puedo hacer con STDIO. Un tubo con nombre es necesario. – Brad

+0

Es correcto que comprenda que necesitará un proceso de "proxy" que se conectará a las canalizaciones con nombre. – Xan

1

Usted sabe, curiosamente me he dado cuenta de que puede ver a través de canalizaciones con nombre:

archivo

: //./pipe/

descubrí esto cuando estaba leyendo el artículo de Wikipedia sobre ellos , lo copié y luego pensé que había copiado una URL y la pegué accidentalmente en Chrome.

Ni siquiera puede acceder desde el explorador o el sistema de archivos.

Cuestiones relacionadas