10
votes

Server XMPP super simple ou conseils pour un composant OpenFire simple simple

J'ai besoin d'un serveur pour envoyer et recevoir des messages XMPP de Clients Android exécutant un jeu multijoueur que j'écris. J'ai choisi XMPP car je ne veux pas que le sondage long et que des prises puissent être un problème sur le réseau cellulaire (les transporteurs peuvent les bloquer).

J'ai regardé Openfire tandis que cela semble incroyable, je n'ai pas Il faut un chat vocal d'administration, des salles de discussion, etc. Il semble très lourd et axé sur une solution de discussion pour les entreprises lorsque tout ce dont j'ai besoin est de faire correspondre les joueurs et de passer leurs mouvements les uns aux autres enregistrant un score à la fin. Y a-t-il une version dépouillée de OpenFire pour que je puisse simplement enregistrer un composant qui conservera toutes les demandes? En ce qui concerne l'adaptation avec Openfire, je ne trouve pas d'exemple clair d'ajout d'un composant personnalisé pour effectuer une tâche similaire.

Ce dont j'ai besoin est une bibliothèque ou un serveur simple existant que je peux exécuter et enregistrer mon auditeur de message personnalisé à. Je dois juste être capable de servir de demandes à venir et à répondre de manière appropriée. J'espère que je n'ai pas besoin d'écrire la direction du thread car ce problème est commun à un serveur de discussion typique, mais je dois écrire le code pour interpréter et répondre aux messages envoyés.

J'espère que cela a du sens, quiconque a écrit un tel élément de code serveur que j'aimerais un exemple. Pour ceux d'entre vous qui ne l'ont pas fait, mais avoir une idée de la façon dont vous commenceriez s'il vous plaît. Plus le mieux est le mieux.

Merci d'avance,

GAV


1 commentaires

Le serveur doit être Java uniquement? Avez-vous pris AMQP en compte?


3 Réponses :


1
votes

Vous devriez pouvoir accomplir cela avec OpenFire (ou d'autres serveurs XMPP) hors de la boîte si elles supportent Pubsub. Pas sûr des détails de vos besoins, mais je pense que Protocole personnel EFFERT ou Sa superset pubsub doit être capable de gérer votre cas d'utilisation. Openfire prend en charge ces deux protocoles.

Si ceux-ci ne prennent pas en charge votre cas d'utilisation, un Plugin personnalisé est assez facile à écrire.

Tant que le poids lourd ou léger, sauf si vous avez un environnement spécifiquement petit pour exécuter le serveur, je doute que cela importerait. Vous n'utiliserez tout simplement pas de nombreuses fonctionnalités existantes.

J'ai utilisé XMPP pubsub pour les clients de communiquer des actions les uns aux autres pour que les utilisateurs puissent obtenir des mises à jour en direct de ce que fonctionnent les collègues d'un groupe.


3 commentaires

Ah, il suffit de lancer un serveur OpenFire hors de la boîte et sur la même machine à exécuter un client 'Gameserver @ ' et que les joueurs envoient des messages de jeu à ce client? Cela pourrait fonctionner, c'est ce que vous vouliez dire? J'ai besoin d'informations centralisées, ce n'est pas simplement un cas de transmettre le message du client au client. Par exemple, le plateau de jeu est aléatoire et je dois couder les joueurs en quelque sorte.


Non, je n'ai aucune idée de ce que vous entendez en exécutant un client sur la même machine pour envoyer des messages à. Je suppose que le jeu est le client.


@Robin - Ce qu'il veut dire est un client XMPP qui peut écouter des messages OpenFire.



8
votes

Vous pouvez utiliser presque n'importe quel serveur XMPP; Je sais que OpenFire fonctionnera, ou j'ai également récemment utilisé Prosody qui est très léger et facile à installer (sur Linux).

Ce que vous voulez est un composant autonome qui communique avec votre serveur XMPP (et peut ainsi atteindre vos utilisateurs) à l'aide de Protocole de composant XMPP . C'est là que réside l'intelligence du jeu.

Voir ma réponse précédente à une question très similaire pour plus de détails:
XMPP C # Interaction

Un autre endroit idéal pour rechercher des informations est écrit n'importe quoi écrit par Jack Moffitt , qui a créé Chesspark.com ( depuis acheté par chess.com, donc non disponible) - un site qui correspondait aux utilisateurs d'échecs et aux jeux contrôlés à l'aide de XMPP.

Voir ce blog Publier comme un départ:

http://metajack.im/2008/11/21/CHESSPARK_DESIGN_DETAILLS_PART_1_WHY_XMPP/ < / p>


0 commentaires

4
votes

Si vous souhaitez un serveur XMPP rapide et léger, essayez Prosody . Les autres réponses sont correctes, cependant, dans lesquelles vous voudrez regarder pubsub Tout d'abord, alors écrivez votre propre composant , avant d'ajouter une fonctionnalité directement sur le serveur.


0 commentaires