Question

Laquelle de ces technologies pour la suite de l'utilisateur multi projet de jeu en ligne .. Exigences du projet: 1. Capable de gérer l'utilisateur 2k-5k à un moment donné. 2. bibliothèque client pour iPhone et Android (natif, pas javascript). 3. bibliothèque client pour Microsoft Windows (le plus important), également pour Mac OS X et Linux. 4. Une bonne documentation spécialement pour le développement mod 5. Projet n'est pas open source. Ainsi, ne peut utiliser des bibliothèques avec une licence appropriée.

Je peux programmer en Erlang et java ainsi, langage de programmation est pas un problème.

Je cherchais à la suite des technologies de serveur comme Openfire, tigase, ejabberd et RabbitMQ. Tous sont bons pour mon projet, mais je veux en savoir plus sur ce que la suite de mes besoins, AMQP ou XMPP.

Qu'est-ce que AMQP offre spécialement pour le temps réel des jeux en ligne. Est-il meilleure option XMPP alors?

Était-ce utile?

La solution

Les habitants de Linden Labs (Second Life) a fait une comparaison approfondie d'un grand nombre de systèmes de messagerie que vous devriez lire:

http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes

Pour ce qui vaut la peine, j'utilise zeromq dans un projet et il est intéressant parce que vraiment, selon le cas d'utilisation, vous n'avez pas besoin d'un nœud de courtier.

Autres conseils

Une différence essentielle entre XMPP et AMQP est contenu binaire. AMQP gère les données binaires très bien, et XMPP semble plus conçu pour XML. Personnellement, pour les jeux en ligne J'utilise Google Protocol Buffers pour formatage des messages et l'analyse syntaxique, et leur empreinte binaire très faible, je serais plus enclin à utiliser AMQP pour délivrer ces messages.

Mais ne considérez ce serveur AMQP que vous souhaitez utiliser. J'ai été mordu à l'aide RabbitMQ pour mon serveur AMQP dans le passé. RabbitMQ ne dispose pas d'installations de contrôle de flux, du tout. Donc, si vos clients envoient des messages plus rapidement que votre serveur peut les consommer, les tampons sur le serveur peuvent remplir et faire sauter le serveur vers le haut. Des versions plus récentes de RabbitMQ mettre en œuvre le contrôle de flux d'une manière très grossière. ils arrêtent tous consommateurs dans le système jusqu'à ce que la mémoire éclaircit

Je ne l'ai jamais essayé zeromq; peut-être que ce serait mieux pour les choses que je me sers RabbitMQ pour ...

5K utilisateurs ne me dit pas grand-chose au sujet de leur comportement, mais si tous submited une demande dans la même fenêtre, puis 10 secondes, disons que vous seriez à la recherche dans les demandes par seconde 500-1000.

J'ai actif / MQ en cours d'exécution sur mes genoux-dessus relativement faible puissance manipulation facilement 300 requêtes par seconde et donc je vous recommande avec plaisir ici. Vous pouvez également mettre en place des groupes de courtiers et d'atteindre une évolutivité horizontale. Vous pouvez utiliser un protocole http (Stomp) ou son protocole binaire natif. Beaucoup de bibliothèques d'API client aussi pour C / C ++, Java, JavaScript et d'autres. Il y a une première AMQP de soutien.

Vous ne mentionne aucune exigence de persistance, mais encore une fois j'aurais pensé que la plupart des SGBDR suffirait. Cela dit, une partie du document orienté et les bases de données de type grand tableau regard intéressant dans une perspective de mise à l'échelle horizontale.

Je l'ai aussi trouvé Apache Camel très performant et je le recommande fortement. Camel est utilisé pour mettre en œuvre votre couche logique.

'espoir que cette aide.

XMPP peut être utilisé dans les jeux textuels. http://gamerunes.com

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