2010-06-04 4 views
7

Je développe un dispositif de contrôle avec un serveur web intégré. Le serveur Web fournit une interface de contrôle à tout navigateur Web qui le demande (à partir des navigateurs Windows, des navigateurs Mac, de l'iPhone Android, etc.).Zeroconf Résolution de nom

Le problème que je rencontre est d'une manière générale de savoir génériquement comment accéder à l'appareil. c'est-à-dire quelle adresse à taper dans le navigateur Web.

Les adresses IP fixes sont trop techniques pour mes utilisateurs et peuvent mal fonctionner car mon périphérique peut être connecté à de nombreux réseaux locaux différents. L'utilisation de la découverte de service uPnp nécessite l'exécution d'un logiciel sur le client pour certaines plates-formes et n'est pas aussi naturelle que la simple saisie d'une adresse Web. Je veux implémenter la résolution de noms.

Mon implémentation actuelle utilise le protocole netbios. Donc, à partir d'un navigateur Windows, je peux taper // controller/et cela fonctionne mais cela ne fonctionne pas avec les Mac ou les smartphones. Je peux en plus essayer d'implémenter le mDnsresponder de Pommes qui devrait rendre les Macs et les iPhones heureux (bien que je pense que je suis limité à //controller.local/). Peut-être que des choses similaires existent pour Android, Symbian, etc., mais n'y a-t-il pas une solution plus universelle pour créer un nom de réseau que je pourrais essayer?

La plate-forme est actuellement basée sur un processeur TI Cortex M3 et lwIP.

Toute aide ou suggestion pour trouver une solution sont très appréciées.

Cordialement,

Bob

+1

Question connexe: http://stackoverflow.com/questions/2375681 –

Répondre

1

Je pense que vous pouvez utiliser DynDNS (www.dyndns.org), il est gratuit pour ce que vous essayez de faire. Vous pouvez l'utiliser même si vous n'avez pas la possibilité d'obtenir une adresse IP fixe. Dans ce cas, vous utiliserez l'utilitaire dyndns updater. Vous pourriez, par exemple, inscrivez notreNomCompagnie.dyndns.org et il sera toujours routé vers votre ordinateur local.

1

Pour les utilisateurs de Windows pour pouvoir « automagiquement » trouver votre appareil en utilisant Zeroconf, ils devront:

  1. Vous avez déjà un démon mDNS installé (comme le mDNSResponder vous avez mentionné, qui est disponible gratuitement d'Apple)
  2. Avoir une secondes logiciel installé qui sait comment effectuer des requêtes au démon mDNS et afficher les services disponibles sur le réseau local (par exemple, un serveur Web intégré de votre appareil)

Bonjour pour Windows est livré avec un plugin Internet Explorer adapté à l'élément 2 et peut ne pas être "trop ​​technique" pour vos utilisateurs. (Il suffirait de télécharger et d'installer Bonjour pour Windows et de cocher la case pour installer le plugin Internet Explorer.) Les utilisateurs Mac peuvent simplement utiliser le navigateur Safari, qui est déjà compatible avec Zeroconf. La dernière pièce du puzzle --- et la partie la plus délicate --- est que vous devrez modifier votre propre logiciel pour enregistrer votre contrôleur avec le "démon mDNS local". Cependant, il n'y a pas de telle chose, probablement parce que votre «dispositif de contrôle» est un système intégré. Vous devez donc écrire votre propre démon mDNS. Ce n'est pas que difficile à faire, et vous pouvez utiliser le code mDNSPosix d'Apple comme point de départ. Mais, en fonction de vos contraintes matérielles, cela pourrait ne pas être réalisable. Dans l'ensemble, Zeroconf peut être une pile de protocoles difficile à travailler. L'aspect «configuration zéro» s'applique uniquement à l'expérience de l'utilisateur.Pour un développeur , il présente une courbe d'apprentissage assez raide. Si vos utilisateurs n'ont généralement qu'un single instance de votre appareil en cours d'exécution, il peut être exagéré.