Sarà DataSnap essere adatto per un massimo di 8 mancata comunicazione intensiva gioco multiplayer bidirezionale?
-
11-09-2019 - |
Domanda
Sto costruendo un piccolo multipliplayer che avrà bisogno il seguente:
- deve essere scritto in Delphi
- deve supportare la connessione a Internet (non solo LAN)
- lavoro su HTTP
- supporta alcuni crittografia dei pacchetti (può essere personalizzato)
- essere in grado di inviare comandi al server
- essere in grado di ricevere risposte dal server
- essere in grado di collegare fino a 8 giocatori a un server
- essere in grado di passare oggetti complessi (forse JSON serializzato) ai server
Pensi che il nuovo Delphi 2010 DataSnap può essere utilizzato con successo in questo scenario o devo andare con il vecchio TSocket pianura?
Soluzione
DataSnap può fare tutto quello che hai elencato sopra:
- DataSnap è scritto in Delphi.
- Può collegarsi tramite HTTP su qualsiasi connessione, la rete locale o remota.
- Si lavorerà su HTTP, incluso il supporto per il tunneling della connessione HTTP
- È possibile filtrare il flusso di dati come più vi piace. Il prodotto include un filtro di compressione. Daniele Teti ha scritto alcune molto bello filtri di crittografia .
- È possibile inviare comandi al server chiamando i metodi del server
- È possibile ricevere una risposta dal server tramite callback del server
- È possibile collegare facilmente otto persone a un server
- È possibile passare oggetti JSON. Questo è il tipo predefinito inviate tra client e server.
Quindi, per rispondere alla tua domanda, sì, credo che il nuovo Delphi 2010 DataSnap può essere utilizzato nel vostro scenario.
Altri suggerimenti
Come ha detto Nick, la risposta è sì.
Bob Swart ha scritto un white paper e prodotto alcuni video sul aggiornato DataSnap in Delphi 2010 che può aiutarti ad iniziare.
Se il gioco multiplayer non invia più dati HTTP e DataSnap può funzionare. Se avete bisogno di una comunicazione veloce, mi piacerebbe utilizzare UDP e il protocollo binario personalizzato. A meno che non si deve escludere un firewall aziendale che si ferma quasi qualsiasi protocollo HTTP, ma - e le aziende di solito non piace la gente che giocano nel loro orario di lavoro - una connessione in entrata firewall blocca, non in uscita. Proprio il server deve aprire le porte per consentire ai client di connettersi. E Eviterei JSON, come pure - se non hai bisogno di interoperabilità una serializzazione binaria è molto più veloce.