Pour un projet particulier, j'ai eu à valider un choix d'architecture basé sur NodeJS.
Autant coté code, c'est facile, autant coté installation, j'ai trouvé que le web manquait de documentation claire et précise. Du coup je vous fait partager le résultat de mes recherches.
Coté serveur
Installation des dépendances
apt-get install build-essential
apt-get install python-software-properties
apt-get install libssl-dev libreadline-dev
apt-get install git-core curl
Installation de nvm
Pour la gestion de NodeJS et de ses versions, je vous conseille de passer par nvm (node version manager).
J'ai mis le code dans /opt/nvm
pour être plus "propre"
git clone git://github.com/creationix/nvm.git /opt/nvm
. /opt/nvm/nvm.sh
nvm install v0.6.3
nvm alias default v0.6.3
nvm ls
nvm help
Si vous voulez pouvoir utiliser nvm en ligne de commande quand vous voulez, je vous conseille de modifier votre
.bashrc
cat >> ~/.bashrc << TXT
. /opt/nvm/nvm.sh
TXT
Installation de npm
npm (node package manager) est un outil pratique pour gérer les "plugins" qui fonctionnent avec NodeJS.
curl http://npmjs.org/install.sh | sh
Installation de express et socket.io
Express JS est un "framework" fonctionnant sur NodeJS qui vous simplifiera grandement la vie.
socket.io est un "package" qui vous simplifie l'usage de websockets avec un système de fallback via composant flash.
cd /var/www
npm install express
npm install socket.io
npm install -g express
express
npm install -d
L'installation des packages via la commande npm install [package]
est la partie simple.
Ce qui m'a pris du temps à découvrir et qui est mal documenté c'est de faire le npm install -g
express
qui permet d'exposer dans le shell la commande express
qui elle s'occupera de
vous installer le framework. npm install -d
s'occupe fanilement d'installer les dépendances et de
résoudre ce qu'il vous manque pour faire fonctionner le tout (socket.io entre autres).
Coté client
Si vous voulez faire comme pour notre projet sur page web générée par PHP mais qui utilise socket.io pour
communiquer en client/serveur avec un serveur NodeJS, vous devez comme indiqué dans la FAQ de socket.io (pas forcément évident à trouver...) rajouter dans
votre page HTML une variable javascript WEB_SOCKET_SWF_LOCATION
qui pointe vers le bon fichier
flash qui sert de fallback.
<script type="text/javascript">
WEB_SOCKET_SWF_LOCATION = "le_chemin_qui_va_bien/WebSocketMain.swf";
</script>