1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Comprendre les callbacks et requĂŞtes SOAP
Ce guide détaille certaines opérations effectuées en arrière-plan par le service VOD / AOD Infomaniak.
Fonctionnement des requĂŞtes SOAP et des callbacks
Dans le service de VOD (vidéo à la demande) et AOD (audio à la demande), certaines opérations comme le téléchargement de fichiers passent par des requêtes SOAP, un protocole qui permet à deux systèmes de communiquer entre eux, souvent utilisé pour échanger des données entre serveurs.
Lorsqu’un fichier est demandé via SOAP, il peut y avoir un délai avant que le serveur réponde. Ce délai dépend de plusieurs facteurs, comme la taille du fichier, la charge du serveur ou encore la qualité de la connexion. Le téléchargement démarre dès que possible, mais il faut savoir qu’il y a une file d’attente : si plusieurs utilisateurs font des demandes en même temps, chacune est traitée dans l’ordre, et chaque utilisateur a une limite de téléchargements simultanés.
Callback : une notification à la fin du téléchargement
Un callback est un système qui permet de notifier le client (par exemple, votre application) une fois que le téléchargement est terminé. Autrement dit, au lieu d’attendre en surveillant le téléchargement, le système vous « appelle » ou vous envoie une réponse quand tout est prêt. C’est utile pour éviter de bloquer votre application pendant que le fichier se télécharge.
Cependant, il existe aussi un délai maximal d’attente, appelé timeout. Si ce délai est atteint avant la fin du téléchargement, une réponse est tout de même envoyée. Cela ne signifie pas que le téléchargement a échoué, mais que la réponse a été donnée avant qu’il soit terminé. Dans ce cas, le traitement continue en arrière-plan.
Les gros fichiers prennent plus de temps
Lorsque le fichier demandé est volumineux (par exemple, plusieurs centaines de mégaoctets ou même plusieurs gigaoctets), le téléchargement peut prendre plusieurs minutes. Ce temps dépend beaucoup du serveur distant : certains sont très rapides, d’autres moins. Le système essaie de gérer cela du mieux possible, mais il faut garder à l’esprit que le temps de réponse ne sera pas toujours immédiat.
Appels bloquants et non bloquants
Par défaut, certains clients SOAP attendent que le serveur ait fini de répondre avant de continuer. On parle alors d’un appel bloquant : votre application est figée jusqu’à ce que la réponse arrive. Cela peut poser problème si la réponse met du temps.
Heureusement, il est souvent possible de configurer le client SOAP pour qu’il ne bloque pas. On parle alors d’un appel non bloquant. Cela permet d’envoyer plusieurs requêtes les unes après les autres sans devoir attendre la réponse de chaque appel. C’est plus rapide et plus efficace, surtout quand vous traitez plusieurs fichiers à la suite.