Je crée un serveur en utilisant Boost asio et je suis confronté à un problème. Mon serveur doit pouvoir recevoir des données de plusieurs clients connectés et également envoyer des commandes à un client spécifique.Commande d'invitation à envoyer en file d'attente partagée dans boost asio
Pour ce faire, je suis instanciation d'une nouvelle session de connexion pour chaque client qui se connectent dans lequel j'appelle async_read avec un rappel qui font appel async_write avec un rappel qui font appel async_read etc ...
Le problème que je m face à est le suivant:
A avoir une interface graphique pour le serveur dans lequel je peux cliquer sur les commandes à envoyer, ces commandes sont ensuite mises dans une file d'attente partagée. Lorsque la file d'attente est partagée, chaque session de connexion peut interroger pour voir s'il y a une commande à envoyer à leur client connecté. Le problème est qu'avec ce schéma "callback s'appelant lui-même" dans la session, comment puis-je vérifier quand il y a une commande pour moi dans la file d'attente sans ruiner la performance (ma première solution était de mettre un timer l'opération async_write pour que je puisse vérifier chaque X secondes)?
Une idée?