Plugins en websocket

Je me renseignais à propos de l'avenir des plugins de navigateur, qui est déjà enterré et je cherchais donc ce qui allait permettre de les remplacer. Parmi les solutions proposées, l'une d'entre elles m'a particulièrement plu. Il s'agit simplement de faire tourner une application sur la machine cliente sachant communiquer en websocket. Le site web n'aura alors qu'à communiquer avec le localhost. Je n'avais jamais pensé à utiliser websocket ainsi et je trouve l'idée vraiment pertinente.

Nous pourrions imaginer de faire installer à l'utilisateur une application pour Mac, Windows ou Linux dont le but sera d'accéder à des périphériques ou des données auxquels le navigateur n'a pas accès, et de l'accompagner d'un serveur websocket répondant uniquement au domaine du webservice associé. Le dit webservice ira vérifier si ce serveur situé sur localhost répond. Dans le cas contraire, il saura simplement indiquer à l'utilisateur de lancer l'application. Et une fois fait, le webservice saura alors afficher les données servies par l'application tournant sur votre machine.

Sur l'expérience suivante, nous pouvons voir un site web servi par une machine virtuelle sous Debian avec un seul core. Une application node fait tourner socket.io sur ma machine hôte : mon mac avec ses 8 cores. Le client web demande à localhost en websocket, de lui donner des informations système. L'application node qui tourne en local les lui renvoit puisqu'il a accès à tout le système. Le client web les affiche alors :

On peut ainsi imaginer remplacer les plugins par un daemon qui tourne sur la machine hôte et qui communique alors avec le webservice afin de lui envoyer des informations. Ce daemon peut être écrit dans le language qu'on veut du moment qu'il compile du code natif pour la machine hôte et qu'il peut être facilement installé par l'utilisateur.

Hadrien

Hi, I'm a french Javascript Lead Developer, Web Architect from Toulouse, France. I've worked for 12 years for many projects with YUI, AngularJS, Aurelia.io and now React and React native.

Toulouse, France https://hadrien.eu