2009-10-24 9 views
1

Mon objectif est maintenant d'avoir une recherche d'utilisateurs pour les autres utilisateurs qui veulent aller en tête à tête pour voir qui peut compléter un puzzle le plus rapide. J'ai une idée de cela pour signaler les utilisateurs qui sont actuellement en ligne en utilisant le fournisseur d'adhésion.Vous avez besoin d'une orientation sur des sessions de jeu multijoueur en utilisant ASP.NET

Je voudrais que le serveur puisse envoyer le même puzzle à deux sessions d'utilisateur différentes à la fois et écouter pour savoir qui termine le casse-tête en premier, comment cela serait-il possible avec ASP.NET? Ou devrais-je regarder d'autres technologies?

Merci!

+0

Le puzzle est-il basé sur le Web ou sur une application? – Dani

+0

basé sur le Web, je ne crois pas que ce soit un client riche du tout. C'est "simplement" s'assurer que les deux utilisateurs sont prêts, puis rediriger le serveur vers le même puzzle et écouter qui complète le puzzle en premier. – jr3

Répondre

1

Je pense que tout ce que vous avez décrit peut être fait dans ASP.NET.

Pour suivre les utilisateurs qui sont en ligne, à moins que votre site est très grand, vous pouvez probablement suivre juste en mémoire. Ce serait effacé si votre site était rafraîchi, et ne fonctionnerait pas si vous avez besoin d'évoluer vers plusieurs serveurs, mais cela ne semble pas être un problème pour le moment. Gardez simplement un dictionnaire qui mappe les noms d'utilisateur à l'état de l'utilisateur.

C'est une approche assez minimaliste, mais peu importe.

Une façon de mettre à jour l'état de détecter en ligne dont est de construire un HttpModule qui vérifie si l'appelant est en ligne et met à jour l'état le cas échéant. Le HttpModule aurait un événement qui exécute l'authentification post pour mettre à jour l'état des utilisateurs. Suivre également quand ils étaient la dernière fois active.

En ce qui concerne « l'envoi d'un casse-tête » va, thats une autre chose. Si c'est suffisant que l'utilisateur se rende à une page pour chercher le puzzle, il suffit d'ajouter une page qui charge leur puzzle actuel. Si le puzzle des personnes doit apparaître sans action de l'utilisateur, vous pouvez faire en sorte qu'une page qu'il visite utilise AJAX pour vérifier s'il y a un nouveau puzzle toutes les quelques secondes.

+0

Idéalement, j'attendrais la confirmation de l'utilisateur que les deux joueurs sont prêts, puis que le serveur les redirige vers le même casse-tête. Ou quelque chose de similaire. – jr3

0

Un client intelligent sera la meilleure façon d'y parvenir, mais il vous forcera à télécharger le « jeu » aux clients. ASP.NET vous donnera une expérience basée sur le Web, mais il sera plus difficile d'envoyer les puzzles aux clients en même temps (forçant le navigateur local à attendre cet événement ...) - le reste est facile sur ASP. NET.

Questions connexes