Mon client de messagerie instantanée basé sur Flash n'est pas assez robuste? De quelle autre façon est-il?

StackOverflow https://stackoverflow.com/questions/2373026

  •  24-09-2019
  •  | 
  •  

Question

J'ai développé un client de messagerie instantanée basé sur Flash qui affiche les messages postés par les utilisateurs appartenant à un groupe ainsi que leur nom d'utilisateur et le temps de l'écriture. Les données sont stockées dans une base de données MySQL avec l'identifiant de groupe, ID utilisateur et un message afin qu'il persiste au-delà des sessions de chat et permet aux utilisateurs se connectant à un moment plus tard pour voir les discussions, moins d'une discussion, plus d'un tableau d'affichage. Lorsqu'un utilisateur écrit un message que je veux que les clients de messagerie instantanée pour mettre à jour instantanément un semble être le chat en temps réel. Ma solution a été jusqu'à présent d'inclure un intervalle dans mon code flash qui appelle une page PHP qui interroge la base de données pour les nouveaux commentaires et retourner ce Flash.

Je pense que de ce Ive lu que cette approche est appelée à long sondage? Est-ce correct? Est-ce assez robuste pour le volume? Serais-je mieux regarde pousser les données au client quand il y a des changements? Comment puis-je détecter ces changements? Je l'ai regardé APE par exemple, mais je ne pense pas que ce stocke les messages dans une base de données.

Toutes les suggestions?

Était-ce utile?

La solution

La mauvaise chose au sujet de vote est, il peut devenir coûteux assez rapide.

supposons, vous avez 10000 utilisateurs en ligne, qui veulent le chat d'avoir un retard pas plus grand que 1 seconde. Ensuite youn bombardera votre serveur avec 10000 demandes par seconde.

pour les petites choses ou des choses qui ne doivent pas être à jour, le scrutin est une bonne approche,

depuis sa simple et ne peut pas vraiment se tromper.

si cela est juste pour une petite communauté avec jusqu'à 100 personnes en utilisant le chat, cela ne devrait pas être le problème.

En dehors de cela, vous pouvez utiliser APE ou SmartFox, ou Red5 ou beaucoup de choses différentes pour créer un serveur de relais persistant, à savoir un serveur qui a des connexions permanentes à tous les clients et les informe de toute modification (par exemple les nouveaux messages) .

comme toujours, mon avis personnel est d'utiliser Haxe . Vous pouvez utiliser le de chat tutoriel pour commencer. Haxe a une courbe d'apprentissage assez raide, mais je pense qu'il est tout à fait la peine. Je suis heureux d'avoir quitté ActionScript et PHP derrière.

modifier ce que vous décrivez n'est pas longue interrogation . En outre, vous pouvez à peine faire polling de long avec PHP, au moins si utilisé avec Apache classiquement. Apache va créer un certain nombre de processus PHP. Chaque fois qu'une demande arrive, il va chercher un processus PHP gratuit et laissez-traiter la demande. Lorsque le processus PHP est fait, il envoie la réponse au client. S'il n'y a pas de processus disponibles, il tampon la demande jusqu'à ce qu'un processus soit disponible. Ainsi, vous pouvez bloquer totalement l'ensemble de votre serveur si vous avez essayé de faire de temps avec PHP interrogation la manière classique.

Autres conseils

Si vous voulez notifier l'application chaque fois qu'un nouveau message a été reçu alors que vous auriez à mettre en œuvre une certaine forme d'application sur le serveur pour surveiller la base de données / être alerté des changements dans, puis passer des mises à jour aux clients.

Cela devrait être plus efficace qu'un simple vote, parce que si vous vous pensez à un scénario de faible trafic, avec sondages vous frapperons l'enfer hors du serveur quelle que soit - cette façon, vous êtes seulement à générer du trafic quand il y a un raison de ...

Lorsque vous tapez un commentaire, votre client pourrait notifier cette application directement (via un service web) du changement, et cette application aide pourrait alors mettre à jour la base de données ...

Il faut dire que je ne suis pas expert sur les programmes de chat - jamais été impliqué dans une personne ...

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