Alcuni dubbi sul Networking Client-Server

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
nightwish88
GMI Advanced
Messaggi: 1739
Iscritto il: 18/01/2009, 13:41
Contatta:

Alcuni dubbi sul Networking Client-Server

Messaggio da nightwish88 »

ciao a tutti ragazzuoli, ho bisogno di alcune spiegazioni per delle cose che non riesco a capire ( o non riesco a decidere come fare )

Sto sviluppando un videogioco con una componente online Client-Server.
* Client sviluppato con GMS 1.4.9999
* Server sviluppato in C# con il framework .net 4.7.qualcosa

Diciamo che non ho mai avuto un esperienza con i Socket e sto studiando tutto per la prima volta, ma ho un infarinatura base sulle comunicazioni client-server e ho avuto esperienze con porte COM per intenderci.

Per ora sono riuscito a tirare su client e server sparando messaggi di echo a caso e rispondendo in modo altrettanto casuale. Qui di seguito le prime perplessità

1) vorrei tirar su un interfaccia comune, quindi standardizzare il messaggio. Speravo in un modello serializzabile e quindi un json
* In C# non ho problemi, mi sembra anche un approccio abbastanza standard
* In GML metodi di decode/encode di JSON li ho trovati ma passano per la creazione di varie ds_map, che per modelli complessi equivale a ds_map annidate, mi sembra tutto molto pesante

la domanda è: conviene incapsulare il messaggio da passare in un formato come il json o conviene inventarsi una codifica compressa in una stringa ( old style per intendersi, con caratteri separatori e totale riduzione delle informazioni ) perdendo la serializzazione dell'informazione ma ( presumo ) migliorando le performance dell client?

2) in un ottica client-server ho capito che il client al primo accesso deve "autenticarsi" fornendo le proprie credenziali di accesso, in modo che il server gli possa generare un client_id con cui poi il client riesce a definire la sua identità in modo univoco.

La domanda è: devo ragionare in un ottica "stateless" quindi ad ogni messaggio che invio di devo incapsulare sempre le credenziali di autenticazione in modo da proteggere il messaggio e determinare chi è oppure basta il client_id?

3) sicurezza: devo implementare qualcosa per gestire la sicurezza tra sockets? se il primo messaggio contiene username e password come proteggo queste informazioni assolutamente sensibili per creare una connessione sicura oppure è già sicura in quanto l'architettura su cui si basa i sockets lo è... a differenza per esempio di una chiamata GET Http?

Grazie mille in anticipo :cappa:
Immagine

Web Site: AFGames

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 29 ospiti