jeudi 3 septembre 2020

Node.js design approach. Server polling periodically from clients

I'm trying to learn Node.js and adequate design approaches.

I've implemented a little API server (using express) that fetches a set of data from several remote sites, according to client requests that use the API.

This process can take some time (several fecth / await), so I want the user to know how is his request doing. I've read about socket.io / websockets but maybe that's somewhat an overkill solution for this case.

So what I did is:

  • For each client request, a requestID is generated and returned to the client.
  • With that ID, the client can query the API (via another endpoint) to know his request status at any time.
  • Using setTimeout() on the client page and some DOM manipulation, I can update and display the current request status every X, like a polling approach.

Although the solution works fine, even with several clients connecting concurrently, maybe there's a better solution?. Are there any caveats I'm not considering?

Aucun commentaire:

Enregistrer un commentaire