02-03-2016, 05:36 PM
(02-03-2016, 04:14 PM)Xenos a écrit : L'idée était de laisser Apache garder la requête jusqu'à ce qu'il reçoive l'info de la laisser passer (ie l'info "nouveau message reçu") pour ne pas bloquer un worker PHP dans un "while(true)" mais de bloquer le "worker Apache" sur le même principe (je ne sais ni si c'est mieux, ni si c'est faisable, c'est une proposition).
Je ne crois pas que ce soit possible. On éviterait de consommer trop de RAM en ne gardant que l'empreinte d'Apache et pas celle de PHP. Je ne sais pas du tout ce que Apache consomme comme RAM mais je sais que tu peux régler PHP pour qu'il soit léger. Et tu peux le régler léger sur un .htaccess pour une URL spécifique, typiquement celle du long-polling ; donc c'est surtout s'embêter pour rien.
(02-03-2016, 04:14 PM)Xenos a écrit : C'est d'ailleurs apparemment ce que Nginx ou Yaws doivent proposer …
Non, c'est juste qu'ils ont une architecture différente, ils ne créent pas un thread par requête, du coup ils peuvent gérer beaucoup, beaucoup plus de requêtes en train de "long-poller" en même temps. Mais on retombe quand même sur le problème de la RAM prise par toutes ces sessions PHP simulatnées en train de
while(1){ if($msgs = read()) return $msgs; else sleep(1); }
.(02-03-2016, 05:17 PM)Youndaiime a écrit : Est ce qu'il y aurait un moyen de gérer cakephp et le nodejs en synchro.
Je ne sais plus qui le fait sur le forum mais cette personne existe Mais pour le coup, je ferais d'abord un prototype avec PubNub ou Pusher (voir le topic que je t'ai donné), en codant une interface entre ton jeu et le code tiers (comme ça tu pourras remplacer par ta propre solution si besoin). Ça te permet de passer rapidement à autre chose avec un truc qui fonctionne sans bugs.
Ensuite j'ai décrié Ratchet un peu trop vite. Tu peux tester, ça t'apprendra très probablement quelque chose de nouveau