Je crois que je commence à comprendre… Il y a un site web qui transmet au client, par web socket, des données de localisation NMEA. Et toi tu utilises ce site web et tu aimerais pouvoir « rediriger » ces données vers un logiciel qui communiquerait en série avec un périphérique. C’est bien ça ?
Le serveur NodeJS est une bonne idée. Si tu lui fais envoyer des entêtes CORS, tu pourras faire une requête ajax vers ton serveur NodeJS depuis une page du site source.
Je ne sais pas quelle techno de serveur NodeJS tu utilises, mais avec l’API native, ça ressemblerait à ça :
response.setHeader('Access-Control-Allow-Origin', '*');
Voir response.setHeader.
La partie compliquée va être de récupérer les données du socket. De ce que j’ai vu vite fait dans la doc de WSSiP, c’est un logiciel complet, il n’a pas l’air conçu pour être intégré comme module dans une application Node. Il faudrait modifier son code source, ça demanderait beaucoup de travail.
Une autre solution, c’est un truc que j’ai déjà fait par le passé : de l’injection de script dans la page du site source. Pour ça il te faudra une extension de type gestionnaire d’userscript, par exemple Greasemonkey. Cette solution peut demander pas mal de travail aussi, ça dépendra de la complexité du JavaScript du site source. L’idée c’est de comprendre comment il initie la connexion au socket, et de le faire à sa place. Ainsi, ton script recevra toutes les données du socket comme s’il était le script original de la page.
Partager