[Node.js] Utilisation de Socket.IO - 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 : [Node.js] Utilisation de Socket.IO (/showthread.php?tid=5897) |
RE: [Node.js] Utilisation de Socket.IO - quentin01 - 31-12-2011 Pourquoi ce JSON.stringify dans app.html ? Ici on ne renvoit pas du JSON mais un code source, l'erreur vient surement de là. Aussi, le path doit commencer par '/' Correction : app.html
app.js
Si ça ne marche pas vérifie bien que http://localhost/FUCORE/php/evenement.php renvoit bien ce que tu veux. RE: [Node.js] Utilisation de Socket.IO - Maks - 31-12-2011 J'avais testé un petit JSON.stringify parce qu'avec cet exemple il me renvoyait "[object Object]", ce qu'il fait toujours :/ Il me semble que pour var socket = io.connect(); on peut mettre var socket = io.connect('http://127.0.0.1:8080'); Peut être que ça peut m'aider ^^ J'essaie de chercher, mais y'a pas tant de tutos même en anglais et la doc est vachement basique... RE: [Node.js] Utilisation de Socket.IO - quentin01 - 31-12-2011 "The 'data' event emits either a Buffer (by default) or a string if setEncoding() was used." Oups :-° Correction :
RE: [Node.js] Utilisation de Socket.IO - Maks - 31-12-2011 Bien vu Et en rajoutant ceci à mon index.php Code : <script type="text/javascript" src="/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script> Je reçois bien le contenu de evenement.php sans m'emmerder avec app.html Ca semble purement statique par contre pas d'actualisation en temps réel :/ De plus, j'utilise une variable de session dans evenement.php et malgré le session_start(); il n'en retrouve pas la valeur RE: [Node.js] Utilisation de Socket.IO - quentin01 - 31-12-2011 Pour une actualisation en temps reel il faut que tu demandes au serveur de te renvoyer l'événement, pour cela il faut lui donner toi même un événement. Sinon c'est sur qu'il va pas décider tous seul de t'envoyer le contenu Exemple :
Code : <!DOCTYPE html> Après pour les sessions c'est un peu normal en faite, là tu passes par l'intermediaire d'un serveur, le serveur n'a pas le cookie de session de l'utilisateur. Il n'y a pas trente six solution pour cela,il faut soit passer l'id de session au serveur qui lui même le donnera à ta page qui pourra charger la bonne session, soit faire autrement. Lien relatif aux ids de sessions en PHP : http://www.php.net/manual/fr/function.session-id.php RE: [Node.js] Utilisation de Socket.IO - Maks - 31-12-2011 Ouep ^^ donc j'ai essayé ça : Code : // Serveur Code : // Client Ca marche mais il me renvoie toujours la même page comme si elle était mise en cache (il faut refaire l'HTTP.request peut etre ?) Pour les sessions PHP visiblement faut voir du côté des cookies Plutôt : Code : var http = require('http'); Et ça marche ^^ Plus qu'à gérer la session PHP RE: [Node.js] Utilisation de Socket.IO - quentin01 - 31-12-2011 Cf mon post juste au dessus où je donne le code. Car effectivement si tu ne redemandes pas le contenu de la page par HTTP il ne va pas te la changer tous seul comme un grand. Pour les sessions pas besoin des cookies, il faut juste passer l'id de session au serveur Node.JS ( lors de l'appel de l'événement giveDivContents ) qui lui même le donnera à ta page PHP qui n'aura plus qu'à faire un appel à session_id pour utilliser la bonne session. RE: [Node.js] Utilisation de Socket.IO - Maks - 31-12-2011 Autant pour moi je n'avais pas vu l'édit de ton post au dessus ! ^^ Ta solution marche aussi, mais je préfère qu'il lance le callback une fois le contenu reçu plutôt qu'avec un setInterval qui va m'imposer une latence d'1s ^^ Pour les sessions j'avais trouvé : Code : /** File system library **/ Mais il me dis que cookies est indéfini. Ta solution si j'ai bien compris ressemblerait à : socket.emit('callback', '<?php session_id(); ?>'); puis path: '/FUCORE/php/evenement.php?PHPSESSID=' + id, ? RE: [Node.js] Utilisation de Socket.IO - quentin01 - 31-12-2011 Non la variable ne serait pas mis dans le path mais sinon oui c'est ça ( Pour passer une variable dans une requete GET, il faut écrire dans req avec write, enfin ... Je n'en suis aucunement sûr ). Concernant les cookies je ne serais pas te dire vu que je n'ai jamais utilisé les cookies avec Node.JS mais la méthode pour les récupérer à du changer par rapport au code que tu as trouvé. ( http://stackoverflow.com/questions/3393854/get-and-set-a-single-cookie-with-node-js-http-server ) A toi d'adapter ton précédent code avec le code de ton serveur actuel et ce qui est dit dans ce topic Concernant ton callback, tu voudrais donc que le serveur une fois une requete HTTP executé et le contenu renvoyé fasse de lui même une nouvelle fois cette action ? Sans demande de la part du client donc ? RE: [Node.js] Utilisation de Socket.IO - Maks - 31-12-2011 J'ai rajouté ça pour le moment à mon code serveur : Code : var app = http.createServer(function(req, res){ Code : Concernant ton callback, tu voudrais donc que le serveur une fois une requete HTTP executé et le contenu renvoyé fasse de lui même une nouvelle fois cette action ? Sans demande de la part du client donc ? Tout à fait, si tu veux la page evenement va chercher dans mysql les évènements genre "vous avez infligé autant de dégat", "machin t'as invité dans un chat privé". Ca se présente comme ça : http://img576.imageshack.us/img576/7922/17668206.png Après je dois faire la même chose pour le chat sauf que cette fois il y aura du POST et des ID à gérer pour le chat privé. Puis le plus dur les déplacements. Le reste comme les menus peut rester en AJAX vu que j'ai pas besoin d'actualisation en temps réel |