Je construis une petite multipliette qui aura besoin de ce qui suit: p>
Pensez-vous que le nouveau Delphi 2010 DataSnap peut être utilisé avec succès dans ce scénario ou devrais-je aller avec le vieux tsocket uni? P>
3 Réponses :
DataSnap peut faire tout ce que vous avez énumérés ci-dessus: P>
Donc pour répondre à votre question, oui, je pense que le nouveau Delphi 2010 DataSnap peut être utilisé dans votre scénario. P>
Attention à ce que les "très belles filtres" ci-dessus ne soient pas sécurisés, car vous auriez besoin d'un moyen sûr d'échanger la clé de session.
Comme Nick dit, la réponse est oui. p>
Bob Swart a écrit un livre blanc et produit des vidéos sur la mise à jour Datasnap dans Delphi 2010 qui peut vous aider à démarrer. P>
Si votre jeu multijoueur n'envoie pas beaucoup de données HTTP et Datasnap peut fonctionner. Si vous avez besoin d'une communication rapide, j'utiliserais un protocole binaire UDP et personnalisé. Sauf si vous devez contourner un pare-feu d'entreprise qui arrête presque tout protocole, mais HTTP - et les entreprises n'aiment généralement pas les personnes qui jouent dans leurs heures de travail - un pare-feu bloque la connexion entrante, pas en cours. Juste le serveur a besoin de ports ouverts pour permettre aux clients de se connecter. Et j'éviterais également Json - si vous n'avez pas besoin d'interopérabilité, une sérialisation binaire est beaucoup plus rapide. p>
Vous voulez dire que même utiliser le port 80 du réseau d'entreprise, le pare-feu peut bloquer la communication (être entrant)?
Un pare-feu géré correctement ne permettra pas de connecter une connexion entrante au port 80 mais pour les serveurs Web autorisés (généralement dans un DMZ ou similaire). Le client peut envoyer une requête HTTP aux serveurs Web extérieurs du port 80 et recevoir une réponse, mais un serveur à l'intérieur du NWTWork ne peut pas recevoir de demande à moins que le pare-feu le permet.
Vous avez raison, Afaik UDP n'est pas routable en dehors du réseau local (à moins que vous ne fassiez du complexe NAT), alors que http / TCP est. Pour la perspective de performance, je n'utiliserais jamais datasnap - mais ici, l'exigence est jusqu'à 8 clients. Dans ce cas, DataSnap le gérera de manière transparente.