Sono scrivendo un'applicazione Web per copiare file tra server .
Ho deciso di scrivere un server WebSocket che riceverà e invierà messaggi rilevanti (cioè comunica con un browser), avvia e ferma i processi di copia.
Di conseguenza, in base alla mia decisione di progettazione, esiste al massimo un processo di copia per un determinato utente. Un utente non "vede" i processi di copia di altri utenti. Ma un utente può aprire più finestre del browser e quindi avere più connessioni al mio server WebSocket.
Quando inizia un processo di copia, l'utente pertinente riceve il messaggio { "type": "Started" }
JSON. Questa potrebbe essere una risposta alla richiesta di iniziare a copiare i file dalla finestra corrente o da un'altra finestra dello stesso utente.
Quando si riceve il messaggio { "type": "Started" }
, il JavaScript dovrebbe mostrare la finestra di dialogo "Copia file ..." con il pulsante "Interrompi" (per interrompere la copia nel mezzo). La finestra di dialogo si chiude automaticamente se la copia termina (con o senza errori).
Inoltre, se la copia non può essere avviata per qualche motivo, il browser riceve un messaggio { "type" : "Error" }
.
Ora la mia domanda: il server dovrebbe rispondere immediatamente con un messaggio (forse { "type": "StartReply" }
) dopo l'inizio della copia? O è sufficiente che comunque riceveremo il messaggio { "type": "Started" }
nel prossimo futuro?
Inoltre: dovrei numerare i messaggi "Start" e includere il suo numero in un messaggio "StartReply", per sapere quale messaggio è la risposta su quale?