2009-10-29 5 views
0

Je souhaite fournir une requête de suspension PHP qui restera ouverte jusqu'à l'apparition de nouveaux événements, à partir de laquelle les données codées en JSON seront immédiatement renvoyées au client javascript.Problème de suspension de demande de suspension

Connexion -> attente d'événements (vérification, veille, vérification, veille, etc.) -> événement détecté -> envoi d'événements retour -> demande de fermeture.

La charge de l'UC n'est pas un problème avec cette configuration, mais la quantité de RAM requise pour l'échelle est d'environ 5-10 Mo par utilisateur car chaque connexion nécessite 1 process PHP. Est-il possible de permettre à un seul processus PHP d'être utilisé pour server plus d'une connexion en même temps. Aussi est-il possible de le faire sans utiliser un certain type de service de démon d'écoute?

+0

ressemble à un service Web de base? – Galen

+1

Pourquoi le processus doit-il traîner? Cela peut certainement être fait, mais à un coût très élevé pour la configuration et les ressources du serveur. De plus, il n'est pas sans échec. Que se passe-t-il si "votre" thread PHP interrompt, raccroche ou redémarre le serveur? Pourquoi ne pas utiliser des modèles de persistance classiques comme des sessions et faire une nouvelle demande sur chaque événement? –

+0

c'est pour un jeu interactif, qui nécessite des réponses proches du temps réel, et interroger toutes les .5-2 secondes va utiliser encore plus de ressources qu'une requête suspendue. –

Répondre

2

c'est un jeu interactif, qui nécessite près de réponses en temps réel, et des sondages tous les .5-2 secondes est vont utiliser encore plus de ressources que une demande de suspension

En ce cas PHP n'est certainement pas une solution à votre problème. Considérez quelque chose comme C++, Delphi ou .NET pour écrire un webservice. Vous essayez de manger de la soupe en utilisant une fourchette ...

+0

Merci de restaurer ma foi dans le niveau de santé mentale du monde. –

+0

C'était mon plan d'attaque, mais j'espérais pouvoir trouver une solution qui fonctionne sur une solution d'hébergement cloud au lieu d'une installation personnalisée. –

Questions connexes