Blocco dell'oggetto su Internet

3

Sto costruendo un'applicazione di tutoraggio che può essere utilizzata per disegnare oggetti e quindi è in grado di trascinarli. Mi piacerebbe sapere qual è la cosa migliore da fare quando qualcuno fa clic su un oggetto e inizia a trascinarlo.

Mi è stato detto che dovevo "bloccarlo", impedendogli di essere afferrato da qualcun altro allo stesso tempo e di poterlo trascinare. Ma ciò richiederebbe l'invio di una richiesta al server (e quindi a tutti gli altri utenti connessi alla sessione di tutoraggio) per bloccarla, che potrebbe richiedere un po 'di tempo (e se un insegnante è in USA e lo studente è in Africa in dialup)? Mi è stato anche detto che dovevo andare in loop finché non ho visto che l'oggetto era bloccato da me. In questo modo, l'utente potrebbe non essere in grado di afferrare, trascinare e oggetti per diversi secondi (problema di progettazione UX).

Ho proposto forse di abilitarne solo uno per trascinare l'oggetto che hai disegnato, ma sembra essere a corto di lati. Eventuali suggerimenti? Grazie!

    
posta jn1kk 02.01.2013 - 21:01
fonte

1 risposta

2

Il modo in cui un sacco di giochi in tempo reale online si occupano della latenza è quello di andare avanti ed eseguire un'azione localmente, quindi correggerla in un secondo momento quando il risultato dell'autorità è dato dal server centrale. Nel tuo caso, inizi a trascinare l'oggetto localmente, inviando una richiesta di blocco al server non appena inizia il trascinamento, ma come se fossi già proprietario del blocco. Se la richiesta di blocco ha esito positivo, si procede normalmente. Se qualcun altro ti picchia, il client locale termina il trascinamento e dà il controllo del trascinamento all'utente vincente finché il blocco non viene rilasciato. Nessuno degli altri utenti vedrà il tuo tentativo di resistenza interrotta.

Dovrai decidere da solo se avere qualcuno che "ruba" la tua resistenza in rare occasioni è più fastidioso o meno di dover aspettare una serratura ogni volta. A mio avviso, rimuovere il ritardo nel caso più comune è la soluzione preferita.

    
risposta data 02.01.2013 - 21:52
fonte

Leggi altre domande sui tag