Les étiquettes URBI vont s'avérer très utiles pour la réception des messages du serveur: chaque commande se voit associée à une étiquette (notag par défaut), et cette étiquette est transmise dans tout message originaire de cette commande. La classe UClient gère la réception de ces messages dans un thread indépendant créé par le constructeur, les analysent et remplit une structure UMessage. Les fonctions-callback, nom que l'on donne aux fonctions d'un client qui doivent réagir automatiquement à tout emploi d'une étiquette donnée de la part du serveur, peuvent être référencées avec la méthode setCallback: à chaque fois q'un message avec cette étiquette est envoyée par le serveur, la fonction-callback sera appelée avec la structure UMessage comme argument.
typedef UCallbackAction (*UCallback) (const UMessage &msg); UCallbackID setCallback (UCallback cb, const char *tag)
Le premier paramètre cb est un pointeur sur la fonction à appeler. La fonction-callback doit retourner la valeur URBI_CONTINUE ou la valeur URBI_REMOVE. Dans ce dernier cas, la fonction sera déréférencée.
La meilleure façon d'apprendre à utiliser les callback est d'étuider les exemples de la documentation: