Develop a system of three components (Client A, Client B, Server):
-
Server - serves the requests of Client A and Client B
-
Client A - sends the data file to the server.
-
Client B - monitors and verifies the sending of data.
Step-by-step description of the interaction of system components:
- Client application B makes a request to initialize a data loading session, the Server returns a session identifier.
- Client B establishes a long-lived connection with the Server (Server-Sent Events / Long-polling / WebSocket) to receive an update of the status of the data loading process by session ID.
- Client A uploads data to the Server in several (> 1) parts. At the same time, it transmits the session identifier obtained in step 1.
- After downloading all parts of the data, the Server sends to Client B through a long-lived connection the update of the download status (completed) and the checksum for the received file.
- Client B reconciles the checksum of the file.
npm install
npm start