2010-06-30 4 views
0

J'utilise PHP, AJAX, une base de données MySQL et beaucoup de jQuery pour prototyper le système de discussion en ligne (similaire à Facebook Chat). Je suis coincé sur comment "écouter" pour les chats entrants ... quand savoir que quelqu'un essaie de discuter avec moi ... et de savoir que c'est une nouvelle discussion, pas un chat existant.comment détecter le message de chat entrant?

En ce moment, j'interroge pour voir s'il y a eu de nouvelles insertions dans les tables de base de données mais il semble très inefficace ... beaucoup de frais généraux pour le serveur.

Existe-t-il un moyen de recevoir une notification quand, par exemple, une ligne a été insérée dans une table dans une base de données MySQL afin qu'au lieu d'avoir constamment interrogé, je puisse juste être averti ?

S'il existe un moyen plus efficace et plus efficace de créer cette relation de chat en tête-à-tête, veuillez me donner quelques suggestions.

Merci, Hristo

+1

Vous pouvez utiliser l'ajax pour continuer à vérifier vos entrées toutes les X secondes ... si une entrée avec un ID supérieur, le dernier message que vous avez entré est ouvert, vous ouvrez une nouvelle fenêtre avec le nouvel utilisateur dans le chat ou l'imprimez sur la fenêtre ouverte donnée qui dépend du fonctionnement de votre chat et de la structure de votre base de données ... et si vous voulez quelque chose comme un messager ou un simple chat multi-utilisateur. – Prix

+0

ahhh .. id supérieur ... bon point, je ne pensais pas à ce sujet. Je partais de l'horodatage, mais c'est difficile à gérer. Merci, je vais essayer ça. – Hristo

Répondre

5

Vous devez utiliser le scrutin, mais vous pouvez utiliser une technique appelée la comète qui implique à long polling, à savoir l'envoi d'une demande de paiement ajax qui aura lieu par le serveur jusqu'à ce qu'une demande de discussion entre en jeu.

http://en.wikipedia.org/wiki/Comet_(programming))

+0

C'est comme la 5ème fois que j'ai entendu parler de Comet ... il est probablement temps pour moi de le vérifier. Merci. Pouvez-vous me donner plus de détails sur la logique derrière Comet? – Hristo

+0

essayez http://ajaxpatterns.org/HTTP_Streaming ou http://cometdaily.com/ – quantumSoup

+0

@hristo, Comet n'est pas une technologie spécifique. C'est le nom donné à n'importe quelle technique pour simuler la poussée de données sur le Web. C'est autant une technologie qu'Ajax. –

1

Je pense que l'interrogation est la seule façon pour JavaScript afin de pousser les changements côté serveur.

Questions connexes