2010-01-15 4 views
5

Je suis intéressé par une très bonne façon de faire de la messagerie instantanée comme meebo et facebook et myspace tous, aussi pour les notifications sur une page. Exemple sur mon site maintenant, quand un utilisateur reçoit un nouveau message, commentaire photo, commentaire de profil, demande d'ami, d'autres choses, ils recevront un message de notification et un lien sur la page qu'ils utilisent avec jQuery et AJAX.Meilleure façon d'afficher les notifications et les messages en direct sur une page Web?

Je crois à une grande échelle que ce n'est pas la meilleure façon de le faire, car mon code jquery devra essentiellement exécuter un script PHP pour interroger la table mysql toutes les 30 secondes pour chaque utilisateur qui a la page ouvrir avec ce script en cours d'exécution. Je voudrais éventuellement ajouter une sorte de messagerie instantanée comme Facebook a dans une barre de chat au bas de l'écran si je peux trouver un moyen efficace de le faire.

J'ai entendu les termes Comet et HTML5 WebSockets mais je ne suis pas sûr si ce sont les solutions que je devrais envisager pour une telle fonctionnalité? Je voudrais garder la bande passante au minimum et exécuter une requête toutes les quelques secondes ne semble pas très efficace sur un site à fort trafic.

Si vous connaissez quelques bonnes solutions, s'il vous plaît expliquer comment ils fonctionnent un peu s'il vous plaît

Répondre

1

Je pense que Facebook utilise XMPP pour leur chat, ont donc un coup d'oeil.

XMPP est

une technologie ouverte pour la communication en temps réel, qui alimente une large gamme d'applications, y compris la messagerie instantanée, présence, chat multi-partie, les appels vocaux et vidéo, collaboration, middleware léger, le contenu syndication et routage généralisé de données XML.

Vous souhaitez installer un separate server pour gérer la messagerie et dans votre application, vous souhaitez mettre en œuvre un client avec l'un des libraries disponibles.

1

Pourriez-vous avoir une file d'attente de messages partagé qu'Ajax peut interroger? Peut-être que c'est un script php qui stocke la majorité du message dans memcached (et éventuellement écrire à db en cas d'échec).

Je ne sais pas, mais curieux d'entendre d'autres solutions ...

2

Vous recherchez un serveur "comète". Puisque vous parlez PHP, votre meilleure solution serait une solution SaaS, telle que WebSync On-Demand, puisque PHP a des problèmes avec la mise à l'échelle quand il s'agit d'un grand nombre de connexions simultanées maintenues ouvertes. Voir aussi this question.

0

Le problème de base est que vous devez implémenter un serveur Comet (c'est-à-dire implémenter le serveur Push). Les hébergeurs standard et Apache ne vous permettent pas facilement de le faire facilement. Une autre solution hébergée (à l'exception de Web Sync) est Goldfish Server. Actuellement gratuit.

Questions connexes