Qui a dit que Node.JS et Socket.IO sont un système de push ?
Bref, pour ta solution si j'ai bien compris il te faut interpréter du PHP et du HTML ? Il te faudra soit utiliser un module Node.JS ( je n'en connais pas pour du parsage de PHP ), soit faire communiquer Apache avec ton serveur, ce qui en thèorie n'est pas compliqué vu qu'il te faut juste faire une requete HTTP à partir de Node.JS.
Après si tu n'as pas compris la récupération de la réponse, c'est la même chose que ton code actuel sauf que la fonction de callback côté client peut recevoir les données que tu passes en plus à socket.emit. Par exemple :
Comme tu le vois ici je fais passer une chaîne de caractère au client. Pour passer des structures plus complexes, les développeurs ont pour habitude de passer du JSON sous forme de chaîne de caractère vu que la plupart des navigateurs intègrent un parser JSON qui permet de ne plus passer par eval pour récupérer le json d'une chaîne de caractère.
EDIT : Je viens de voir que tu voulais récupérer des données à partir de MySQL, tu n'es donc pas obligé de passer par PHP. Le mieux serait de récupérer tes données en JS et faire la génération du contenu aussi en JS. ( Il y a un module pour MySQL dans Node.JS ).
Bref, pour ta solution si j'ai bien compris il te faut interpréter du PHP et du HTML ? Il te faudra soit utiliser un module Node.JS ( je n'en connais pas pour du parsage de PHP ), soit faire communiquer Apache avec ton serveur, ce qui en thèorie n'est pas compliqué vu qu'il te faut juste faire une requete HTTP à partir de Node.JS.
Après si tu n'as pas compris la récupération de la réponse, c'est la même chose que ton code actuel sauf que la fonction de callback côté client peut recevoir les données que tu passes en plus à socket.emit. Par exemple :
// Serveur
var html = require('fs').readFileSync(__dirname+'/app.html');
var app = require('http').createServer(function(req, res){ res.end(html); });
app.listen(8080);
var io = require("socket.io");
var io = io.listen(app);
io.sockets.on('connection', function (socket) {
socket.emit('faitUneAlerte', 'Données transmises au client');
});
// Client
var socket = io.connect();
socket.on('faitUneAlerte', function (data) {
alert('Je fais une alerte car on m\'a appelé ! Et je reçois : ' + data);
});
Comme tu le vois ici je fais passer une chaîne de caractère au client. Pour passer des structures plus complexes, les développeurs ont pour habitude de passer du JSON sous forme de chaîne de caractère vu que la plupart des navigateurs intègrent un parser JSON qui permet de ne plus passer par eval pour récupérer le json d'une chaîne de caractère.
EDIT : Je viens de voir que tu voulais récupérer des données à partir de MySQL, tu n'es donc pas obligé de passer par PHP. Le mieux serait de récupérer tes données en JS et faire la génération du contenu aussi en JS. ( Il y a un module pour MySQL dans Node.JS ).