2010-06-04 12 views
7

Estoy desarrollando un dispositivo de control con un servidor web incorporado. El servidor web proporciona una interfaz de control para cualquier navegador web que lo solicite (desde navegadores Windows, navegadores Mac, iPhone, Android, etc.).Zeroconf Resolución de nombre

El problema que tengo es una forma general de saber genéricamente cómo acceder al dispositivo. es decir, qué dirección escribir en el navegador web.

Las IPs fijas son demasiado tecnológicas para mis usuarios y podrían salir mal ya que mi dispositivo podría conectarse a muchas redes locales diferentes. El uso del descubrimiento del servicio uPnp requiere que el software se ejecute en el cliente para algunas plataformas y no es tan natural como simplemente escribir una dirección web. Quiero implementar Name Resolution.

Mi implementación actual usa el protocolo netbios. Así que desde un navegador de Windows puedo escribir // controlador/y funciona, pero esto no funciona con Macs o teléfonos inteligentes. Además, puedo intentar implementar Apples mDnsresponder, que debería hacer que Macs y iPhones se muestren felices (aunque creo que estoy limitado a //controller.local/). Tal vez existan cosas similares para Android, Symbian, etc., pero ¿no existe una solución más universal para crear un nombre de red que pueda probar?

La plataforma se basa actualmente en un procesador TI Cortex M3 y lwIP.

Cualquier ayuda o sugerencia para encontrar una solución es muy apreciada.

Saludos cordiales,

Bob

+1

Pregunta relacionada: http://stackoverflow.com/questions/2375681 –

Respuesta

1

Creo que se puede utilizar DynDns (www.dyndns.org), que es libre para lo que está tratando de hacer. Puede usarlo incluso si no tiene posibilidad de obtener una dirección IP fija. En ese caso, usaría la utilidad dyndns updater. Podría, por ejemplo, registre ourCompanyName.dyndns.org y siempre se enrutará a su computadora local.

1

Para los usuarios de Windows para poder 'automágicamente' encontrar su dispositivo usando Zeroconf, que tendrían que:

  1. ha instalado un demonio mDNS (como el mDNSResponder usted ha mencionado, que está disponible de forma gratuita de Apple)
  2. Tener una segunda pieza de software instalado que sabe cómo realizar consultas al demonio mDNS y mostrar los servicios disponibles en la red local (es decir, el servidor web integrado en el dispositivo)

Bonjour para Windows viene con un complemento de Internet Explorer adecuado para el elemento n. ° 2, y puede que no sea "demasiado técnico" para sus usuarios. (Simplemente necesitarían descargar e instalar Bonjour para Windows y marcar la casilla para instalar el complemento de Internet Explorer). Los usuarios de Mac solo podrían usar el navegador Safari, que ya es compatible con Zeroconf.

La última pieza del rompecabezas --- y la parte más complicada --- es que tendría que modificar su propio software para registrar su controlador con el "daemon mDNS local". Sin embargo, no existe tal cosa, presumiblemente, porque su 'dispositivo de control' es un sistema integrado. Entonces necesitarías escribir tu propio daemon mDNS básico. No es que es difícil de hacer, y puede usar el código mDNSPosix de Apple como punto de partida. Pero, dependiendo de sus limitaciones de hardware, esto podría no ser factible.

En general, Zeroconf puede ser una complicada pila de protocolos para trabajar. El aspecto 'configuración cero' se aplica solo a la experiencia del usuario.Para un desarrollador , presenta una curva de aprendizaje bastante empinada. Si sus usuarios generalmente solo tienen una instancia única de su dispositivo en ejecución, puede ser exagerado.

Cuestiones relacionadas