JeuWeb - Crée ton jeu par navigateur
Serveur de push - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Serveur de push (/showthread.php?tid=6411)

Pages : 1 2 3 4


RE: Serveur de push - Damocorp - 26-10-2012

Je reviens sur ce sujet, je ne m'en sors vraiment pas avec node.

J'en suis à la 3e partie du tuto ( sans compter tout ceux tester sur le net ) de developpez.com
J'ai installé node comme indiqué dans la doc ici

Je peux aujourd'hui lancer le serveur et réaliser des petites chose sur mon addresse locale genre 127.0.01:xxxx
Pour le moment, je voudrai remplacer mon tchat fait en ajax par node. Mais comme le serveur apache tourne sur le port 80. Comment y ajouter node qui est son propre serveur à ce que j'ai compris.
Sachant que je ne compte certainement pas renvoyer le client vers 127.0.0.1 Big Grin


RE: Serveur de push - Astarion - 26-10-2012

Et bien tu changes le port d'écoute de Node.js Smile
Tu le fait écouter sur 8080 (par exemple) et coté client, tu appelles le script socket.io avec le port 8080 :

http://192.168.1.18:8080/socket.io/socket.io.js'

Voila Smile


RE: Serveur de push - niahoo - 26-10-2012

si tu renvoyais le client sur 127.0.0.1 ça ne changerait rien de toute façon, le port est quand même occupé même si tu y accèdes par un autre nom d'hôte.

Par contre, ce que tu peux faire c'est du reverse proxy avec apache.

Tu dis a apache de servir /chat sur 127.0.0.1:XXXX . C'est plus facile avec d'autres serveurs que apache.


RE: Serveur de push - Damocorp - 26-10-2012

Et niveau sécurité ?
Le serveur node démarré, celui-ci doit bien pointer vers un répertoire ? Lorsque je fait par exemple http//localhost:3000 ce me renvoi une page ou il est marqué "Welcome to socket.io".
On est donc dans le node_modules/ ?
Et est-il possible de naviguer sur les répertoires et donc d'avoir accès au système depuis la connexion établit avec node ?


RE: Serveur de push - niahoo - 26-10-2012

Quand tu fais du PHP avec apache, tu utilises un serveur de fichiers statiques statiques :

si tu demandes index.html, apache est réglé pour t'envoyer le contenu de ce fichier. Mais si l'extension match avec '.php' alors il envoie d'abord le contenu du fichier à un worker PHP et te renvoie le résultat. Mais ça, c'est le modèle apache. Node n'utilise pas ça par défaut. il doit bien y avoir un controlleur qui fait le lien entre l'URL demandée et le contenu d'un répertoire (je connais pas node) mais ce n'est pas le comportement par défaut tout simplement.

Ensuite comme je ne connais pas node je ne saurais te dire, mais je suppose que l'URL est comparée à des routes et qu'un controlleur en est déduit.


RE: Serveur de push - Damocorp - 26-10-2012

Cette article me semble pas mal pour virer l'ip en passant par un sous domaine par exemple.

Mais si node à son propre controller, je devrai réussir à trouver le moyen de passer par un sous domaine sans Nginx ?


Edit : ca me fait penser qu'il est possible de faire tourner plusieurs serveur node sur différent port ?
Genre le tchat sur le 8080 et un autre truc sur un autre port ?


RE: Serveur de push - niahoo - 26-10-2012

ip, sous chemin, quoi que ce soit, tu ne peux avoir qu'une seule appli sur un même port sur une même machine.

Je ne te disais pas d'utiliser une ip mais un reverse proxy.

/ sur le port 80 va vers apache/nginx
/chat sur le port 80 va vers apache/nginx en proxy sur sa propre machine sur un port différent.


RE: Serveur de push - Damocorp - 26-10-2012

Ok je commence à mieux comprendre.
C'est exactement ce que je fait avec les Vhost d'apache et mes domaines / sous-domaine.

Mais puisqu'apache est sur le port 80, et que je gère mes domaines via le Vhost, je dois pouvoir renvoyer un sous domaine genre socket.damocorp.com vers node puisque les vhost peuvent recevoir la configuration d'un port.
Ok j'avoue que c'est un peu tordu comme façon de voir, mais techniquement il me semble que ca devrai fonctionner non ?
J'ai pas encore tester node sur mon serveur ce qui fait que je ne peux encore faire de test. Mais je vais tâcher de trouver le temps ce week-end.

Edit : je viens de me rendre compte d'un truc con. Ce que je voulais éviter, c'est que le client ne voit ceci :
Citation :var socket = io.connect('http://localhost:3000/');
Mais le client ne le voit pas sur un serveur web non ? il est obligé d'avoir quelque chose comme :
Citation :var socket = io.connect('http://www.damocopr.com:3000/');
Sinon ca le renverrai vers son propre serveur local ( si tant est qu'il en est un ).

ok c'est l'heure d'aller dormir la je crois !


RE: Serveur de push - Sephi-Chan - 27-10-2012

Oui tu pourrais en utilisant Apache comme reverse proxy. Mais tu y perdrais sûrement en performance. Et je ne sais pas comment ça se passerait lors du handshake Websocket puisque ce n'est plus du HTTP.

De toutes façon la question ne se pose pas puisqu'il suffit d'utiliser un port différent.


RE: Serveur de push - niahoo - 27-10-2012

(26-10-2012, 11:42 PM)Damocorp a écrit : Ok je commence à mieux comprendre.
C'est exactement ce que je fait avec les Vhost d'apache et mes domaines / sous-domaine.

Non, ça m'étonnerait que tu fasse du reverse proxy avec tes sous-domaines. ils doivent tous être sur le même port logiquement, chacun sur leur virtalhost.

Sephi tu dis que le reverse proxy est moins performant qu'appeler directement le bon port. ça me paraît logique, mais est-ce qu'il n'y a pas de restrictions à appeler un port différent via ajax , comme par exemple pour les requêtes cross-domain ?