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


Serveur de push - Damocorp - 09-10-2012

Bonjour,

Ca fait un moment que je suis pas passé, j'étais panché dans les tutos, bouquins, étude des frameworks, linux et j'en passe etc...
Je prépare activement la 2e version de Damocorp :

- Les sessions disparaissent, je les ai bien testé, et la mauvaise utilisation que j'en faisais ne m'as crée que des soucis.
Remplacement : APC, déjà actif sur le serveur local et fonctionnel. Il me reste à refondre certaines page.
- Identification automatique par cookie crypté ( Merci pour l'idée Sephi Wink ).
- Nouvelles fonctionnalité, commerce, alliance, les défis entres joueurs, etc... ce qui manquait.
- Nouvelle carte en canvas via la librairie KineticJS
- Nouveau tutoriel
- Tentative de travail avec Git ( pas fonctionnel, je maitrise pas encore )

Mais voila, ma carte va être fixe, gérer par ajax pour les actions. Il survient donc un problème que j'ai repoussé trop longtemps : le système de push. La page sera rafraichi que très rarement, et encore c'est pas sûr, je travail une idée pour les sous-pages via Ajax.
Il me faut donc tenir informé le joueur si un autre joueur se déplace ou effectue une action qui est censé affecter la carte ( déplacement, capture d'une case, interaction avec une planète etc... )

D'après tout ce que j'ai lu je me dirigerai vers Node avec socket Io pour le moment.
J'aimerai profiter de votre expérience,
- Pourriez-vous me dire avec quoi vous avez commencé ?
- Que conseillez-vous et pourquoi ?
- Si vous avez des ressources a partager, n'hésitez pas, je lis d'abord tout ce que je trouve, doc, tutos etc...

Je vais tester tout cela sur un tchat extrêmement simple.
Merci pour vos conseils,


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

Hello !

Pour ma part, j'utilise Node.js et Socket.io et j'en suis vraiment satisfait !
Relativement simple à mettre en place et fonctionne avec tous (?) les navigateurs, même avec les plus anciens car la librairie adapte le protocole en fonction du navigateur (websocket pour les plus récents, flash ou xhr-polling pour d'autres, etc)

Niveau ressources, j'ai tout ces tutos qui m'ont beaucoup aidés :

* Node : http://nodejs.developpez.com/tutoriels/javascript/introduction-node-js/
* Socket.io : http://www.atinux.fr/2011/08/28/tutoriel-socket-io-debutant/ et http://www.mti.epita.fr/blogs/2012/01/09/socketio/
* Node et PHP : http://www.scriptol.fr/javascript/nodejs-php-html.php

A ta dispo si tu as besoin !


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

Merci pour ta réponse, je voit qu'on est tombé sur certains même liens.
Je crois que mon premier test en local va être basé sur :

Installation : http://www.atinux.fr/2011/08/15/tutoriel-sur-node-js/
début avec node : http://www.atinux.fr/2011/08/28/tutoriel-socket-io-debutant/

Scriptol est sympa, je me fait atinux et je retourne le relire pour voir si je pige mieux ce qu'il fait.
Dévelloppez.com pareil, je l'avais déjà lu, mais je n'ai pas trop compris pour le moment.

EDIT : allez c'est parti pour Atinux, je pense en avoir assez lu, j'vais tester.

REDIT : Vous conseillez une version particulière pour node ?


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

Oui, le tuto sur Atinux est une bonne base !
Le tuto sur scriptol te permet d'exécuter un script PHP depuis le serveur node... Concrètement, ça peut servir à update un champs quand un joueur réussi une connexion socket.io, lorsqu'il fait une action, etc...

Tu peux aussi faire ça directement avec node, il y a des modules qui permettent d'exécuter directement du SQL, après quand tu as ton moteur de jeu en PHP, il peut être préférable de tout traiter (les requêtes) au même endroit...


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

Je viens de faire le premier tuto, l'installation c'est bien passé et j'en appris plus sur la compilation par la même occasion. C'est toujours un plus.

J'ai donc testé mes premiers scripts.
N'ayant pas le temps de commencer le deuxième maintenant, je cherche des infos concernant cette installation.
Le répertoire node que j'ai créer pour compiler et installer tout cela n'est plus nécessaire maintenant ?
Peut-on le supprimer ?

Ensuite d'autre question me vienne à l'esprit.
Comment on update un programme installer via la compilation ?
Comment le supprimer proprement de son système ?

l'exemple active un serveur sur le port d'écoute 8080. Hors il me semble avoir vu sur mon serveur que php pouvait aussi utiliser ce port. Mais bon au pire ca se configure.
Par contre j'ai hate de faire la suite et de voir comment je peux interagir entre node et php. ( j'irai relire scriptol pour cela )

Et surtout, comment activer un serveur pour qu'il intéragisse avec un virtualhost sur mon serveur.


Bref plein de questions auxquels j'essaierai de répondre dès que possible.
Je ferai un retour d'expérience à la fin quand j'aurai fait le tour des bases.


RE: Serveur de push - Maks - 09-10-2012

Citation : Le tuto sur scriptol te permet d'exécuter un script PHP depuis le serveur node... Concrètement, ça peut servir à update un champs quand un joueur réussi une connexion socket.io, lorsqu'il fait une action, etc...

ça sert à rien en fait lol


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

(09-10-2012, 04:14 PM)Damocorp a écrit : Le répertoire node que j'ai créer pour compiler et installer tout cela n'est plus nécessaire maintenant ?
Peut-on le supprimer ?

Oui théoriquement

(09-10-2012, 04:14 PM)Damocorp a écrit : Ensuite d'autre question me vienne à l'esprit.
Comment on update un programme installer via la compilation ?
Comment le supprimer proprement de son système ?

La tu m'en demande trop, je suis pas encore expert linux xD La suppression, on peut avec apt get de mémoire.

(09-10-2012, 04:14 PM)Damocorp a écrit : l'exemple active un serveur sur le port d'écoute 8080. Hors il me semble avoir vu sur mon serveur que php pouvait aussi utiliser ce port. Mais bon au pire ca se configure.
Par contre j'ai hate de faire la suite et de voir comment je peux interagir entre node et php. ( j'irai relire scriptol pour cela )

Et surtout, comment activer un serveur pour qu'il intéragisse avec un virtualhost sur mon serveur.

C'est simplement de l'écoute et de l'écriture sur un port, tu vas dire à node d'écouter le port 8080 (ou un autre de ton choix) et ton script php écrit sur le port 8080
C'est ces dans le cas PHP => node.

Dans l'autre (Node => PHP) tu peux utiliser child_process qui va exécuter un script à un endroit donné, avec les paramètres données



(09-10-2012, 04:33 PM)Maks a écrit :
Citation : Le tuto sur scriptol te permet d'exécuter un script PHP depuis le serveur node... Concrètement, ça peut servir à update un champs quand un joueur réussi une connexion socket.io, lorsqu'il fait une action, etc...

ça sert à rien en fait lol

L'exemple est peut être pas bon (encore que, ça peut être relativement utile dans certains cas) mais il y a plein de cas d'utilisation...


RE: Serveur de push - Maks - 09-10-2012

Pourquoi faire avec PHP ce qu'on peut faire avec Node ?
On avait déjà parlé de ce "tuto" dans un autre topic de mémoire... ^^


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

Oui, cf ma remarque : "Tu peux aussi faire ça directement avec node, il y a des modules qui permettent d'exécuter directement du SQL, après quand tu as ton moteur de jeu en PHP, il peut être préférable de tout traiter (les requêtes) au même endroit..."

Personnellement, je préfère séparer mes couches de code et gérer tout ce qui touche à ma BDD dans mes models et pas avoir à me soucier de ça dans du node...
C'est un choix personnel de structure, il est largement discutable et je ne plaide pas en sa faveur, pour preuve : j'ai donné les 2 solutions Smile


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

Tu te souviens du topic ou quoique ce que soit qui me permette de le retrouver facilement ?
Car du système de push on en parle un peu partout Smile