La bonne technologie à adopter ?
Bonjour,
Je souhaite solliciter votre point de vue expert, car je cherche à savoir si node.js peut convenir à mon besoin.
Pour faire bref, je cherche à créer mon propre logiciel serveur, inspiré des principes d'un serveur web, mais avec ses particularités propres. Ainsi, mon serveur servira à stocker des fichiers d'une certaine nature (disons, des fichiers Autocad par exemple), organisés de manière très particulière sur le File System du serveur. Puis, je souhaite offrir un protocole d'accès dédié, logiquement baptisé autocad (et non pas http), muni de ses propres verbes d'actions (et non pas les sempiternels GET, POST, PUT, ...). Ceci nous donnerai quelque chose dans le genre :
Code:
VIEW autocad://host:port/layer1/
Renverrai le fichier situé sur le serveur concerné, stocké dans /assets/layer1/main.dwg (le nom 'main' serait une convention par exemple)
Bref, mon propre protocole requête/réponse réseau, avec ses propres verbes (et des données associées si besoin), son propre type MIME, ses propres codes de retour, etc. Je sens bien que ce n'est qu'un http maquillé et c'est pour cela que j'hésite. Dois-je m'appuyer et encapsuler http dans protocole customisé ou bien dois-je descendre au niveau plus bas afin de recréer entièrement mon protocole ? Node.js est elle la technologie pour cela ? Je voyais la logique suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
//1) écoute sur le port 6666 (par pure convention)
//2) extraction du verbe et des données associées depuis la requête
Si verbe = VIEW alors
//accès au fichier sur le File System
//écriture des octets dans la réponse
sinon si verbe = CLOSE alors
..
finsi
... |
[mode élargissement]
Je vais aussi devoir offrir des API clientes (en Java, en JavaScript, ...) pour intégrer les requêtes/réponses du protocole custom autocad dans différents type de logiciels client. Or là aussi, je sens bien que j'ai besoin de m'appuyer sur les API client http existantes. Je ne vais quand même pas tout réinventer.
[/mode]
Merci d'avance de votre éclairage.