Question

Je suis intéressé par une très bonne façon de faire la messagerie instantanée comme Meebo et facebook et myspace ont tous, également pour les notifications sur une page. Exemple sur mon site maintenant, lorsqu'un utilisateur reçoit un nouveau message, photo commentaire, commentaire de profil, demande d'ami, d'autres choses, ils recevront un message de notification et un lien sur la page qu'ils sont sur l'utilisation de jQuery et AJAX.

Je crois à grande échelle que ce n'est pas la meilleure façon de le faire si mon code jquery devra exécuter essentiellement un script PHP pour interroger la table mysql toutes les 30 secondes pour chaque utilisateur qui a la page ouverte avec ce script en cours d'exécution. Je voudrais ajouter éventuellement dans une sorte de messagerie instantanée comme Facebook a dans un bar de chat en 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 sais pas si ce sont les solutions que je devrais regarder à une telle fonction? Je voudrais garder la bande passante à un minimum et d'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

Était-ce utile?

La solution

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, la collaboration, middleware léger, la syndication de contenu, et le routage généralisé des données XML.

Vous souhaitez installer un serveur distinct pour gérer la messagerie et dans votre application que vous mettre en œuvre un client avec l'un des bibliothèques .

Autres conseils

Vous êtes à la recherche d'un serveur « comète ». Puisque vous parlez PHP, la meilleure solution serait une solution SaaS, comme WebSync On-Demand , puisque PHP a des problèmes avec mise à l'échelle en ce qui concerne un grand nombre de connexions simultanées étant maintenues ouvertes. Voir aussi cette question .

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

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

Le problème de base est que vous devez implémenter un serveur Comet (ie la fonctionnalité Push Server). Les hôtes Web standard et apache ne vous permettent pas facilement de le faire facilement. Une autre solution hébergée (en dehors du Web Sync) est Goldfish Server. Actuellement libre.

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