Question

Je prévois une application web comme le chat, où chaque fois qu'un utilisateur de messages quelque chose, tous les autres utilisateurs (qui est, les gens avec leur navigateur pointant vers ce site) seraient mises à jour instantanées obtenir. Le choix commun pour c'est la messagerie de style comète utilisant des requêtes AJAX long vote. La rédaction de la partie côté client avec jQuery n'est pas un gros problème.

Mais je me demande comment mieux mettre en œuvre la partie côté serveur en PHP. Les messages / messages seront stockés dans MySQL et la question est: Après avoir écrit un nouveau poste à la base de données, comment puis-je préviens toutes les demandes d'attente, que les données sont disponibles pour les sans avec vote? Polling fonctionnerait, mais il est laid et ressources de perdre, donc, ce que je ne veux pas:

while (timeout not reached) {
    if ($database->has_changes())
        break;
    sleep(1);
}
handle_changes_if_any();

Y at-il une sorte de fonction MySQL qui me aider? Est-ce que une sorte de IPC d'aide? Le serveur exécute Apache.

Était-ce utile?

La solution

Vous avez déjà mentionné une solution possible, qui consiste à utiliser AJAX vote pour interroger un script régulièrement mises à jour. Scrutin doit être fait sur le côté client, et n'a rien à voir avec le côté serveur.

Une autre option serait d'utiliser un serveur de comète, comme Meteor . Avec cette approche, votre script PHP peut notifier le serveur de la comète des nouveaux messages et les clients connectés recevront les mises à jour. Ensuite, il est juste à vous d'écrire le JavaScript pour afficher la mise à jour à l'utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top