Gestione di frequenti aggiornamenti simultanei in tempo reale

2

Ho visto domande e risposte simili qui, ma la mia situazione è leggermente diversa da quelle. Sto costruendo un'applicazione che offre agli utenti uno spazio infinito per disegnare qualcosa. Lo spazio su tela è aperto a tutti gli utenti e chiunque può disegnare ovunque.

L'utente realizzerà disegni e ogni volta che si modifica qualsiasi pixel, le modifiche vengono memorizzate sul server. Se un utente sovrascrive il disegno di un altro utente, incorrerà in una penalità.

Ora il problema: più utenti possono contestare per lo stesso spazio in cui è aperta la tela. Se l'utente A disegna sul pixel X, qualsiasi altro utente che disegna dopo di lui sul pixel X riceverà una penalità. Ma se più utenti vedono il pixel Y, che è vuoto, tutti possono provare a disegnare qualcosa su quel pixel. Ora se prendo gli aggiornamenti in ordine sequenziale, potrebbe danneggiare gli utenti. Perché, salverò il primo aggiornamento e ogni aggiornamento consecutivo verrà considerato sovrascritto. Ma per gli utenti, il pixel era vuoto.

Una soluzione è controllare l'ora dell'ultimo aggiornamento di un pixel prima di aggiornare e scartare un aggiornamento se il tempo trascorso è inferiore a 2 secondi e fornire agli utenti un messaggio per scartare l'aggiornamento. Ma questo ha due problemi, il controllo rallenta gli aggiornamenti e in secondo luogo, ostacola l'esperienza dell'utente.

Esiste una strategia migliore per gestire questa situazione?

    
posta Sumit 08.05.2017 - 16:42
fonte

0 risposte

Leggi altre domande sui tag