2012-02-29 4 views
3

J'ai un gros problème et j'ai de la difficulté à le résoudre. J'ai un contrôleur de jeu fait sur commande, qui sort des données de ses capteurs via la communication série et est connecté au PC via le port série. Je fais le callculation de la position actuelle du contrôleur dans un script Matlab. Je construis une application Web qui affichera les données (position) de l'appareil dans un navigateur Web, mais ne peut pas sembler fonctionner, comment connecter mon appareil au navigateur. Le script Matlab envoie toutes les données de position à un port UDP avec une fréquence d'échantillonnage de 100 Hz (100 échantillons par seconde). Je dois établir une connexion permanente entre un navigateur web et mon script matlab afin que je puisse afficher les données. Je pense à l'utilisation de l'API Web Sockets. mais il ne "parle" pas UDP. Donc, mon idée était de lire les données avec UDP avec un serveur Python personnalisé, puis de créer une socket Web sur ce serveur Python et d'envoyer les données reçues via le port UDP au navigateur Web. Oh, et ce serait bien si je pouvais communiquer dans les deux sens. Est-ce que ça va marcher? Des idées sur la façon de le faire? Comment cela se fait-il habituellement, je veux dire comment peut-on se connecter disons un capteur de température au navigateur Web pour afficher les données en temps réel?Comment créer une communication entre le navigateur et l'application

Toutes les réponses seront volontiers appréciées.

Merci, Leon

Répondre

3

Notez que bien que le protocole WebSockets est construit sur les sockets TCP, le protocole WebSockets ne sockets TCP premières. Une connexion WebSockets a une prise de contact conviviale HTTP (avec certaines fonctionnalités CORS intégrées). Les WebSockets sont également basés sur les messages (plutôt que sur le streaming comme TCP), de sorte que chaque message a deux octets d'en-têtes de cadrage.

Vous pouvez regarder websockify (avertissement: j'ai fait websockify). Websockify est un serveur python qui relie/proxy entre WebSockets et les sockets TCP. Je ne pense pas qu'il serait particulièrement difficile de l'adapter pour gérer les sockets UDP sur le backend. WebSockify (conçu pour être utilisé avec la bibliothèque frontale include/websock.js incluse) prend en charge les données binaires même sur les anciennes versions Hixie du protocole. Cela lui permet de fonctionner avec des appareils iOS (iPhone, iPad) qui ne prennent en charge que l'ancienne version du protocole.

Questions connexes