Syntaxe
Membres
priority int8_t
La priorité du message mis en file d’attente localement par rapport aux données de clavardage ou aux messages envoyés à partir d’autres points de terminaison locaux.
priority doit être une valeur comprise entre c_minSendMessageQueuingPriority et c_maxSendMessageQueuingPriority, inclus. Les nombres plus élevés représentent une priorité relative plus élevée (transmission en premier) par rapport aux nombres plus faibles. La valeur par défaut lorsqu’aucune structure PartySendMessageQueuingConfiguration n’est fournie à PartyLocalEndpoint::SendMessage() est c_defaultSendMessageQueuingPriority, qui se situe exactement au milieu de la plage des entiers signés (zéro). La priorité de la file d’attente d’envoi ne modifie pas l’ordre dans lequel les messages envoyés à partir d’un point de terminaison local donné sont transmis ou remis. Elle affecte uniquement l’ordre des messages provenant de différents points de terminaison locaux, ou entre un point de terminaison et les données de clavardage transmises en interne, qui utilisent la priorité
c_chatSendMessageQueuingPriority. La file d’attente d’envoi du point de terminaison local qui contient les messages ayant la valeur de priorité la plus élevée verra ses messages devenir éligibles à la transmission en premier. Si tous les messages restants mis en file d’attente par les points de terminaison locaux ont la même priorité, les messages individuels deviennent éligibles à la transmission dans l’ordre dans lequel leurs appels à PartyLocalEndpoint::SendMessage() ont eu lieu. On peut considérer que les messages de priorité élevée élèvent automatiquement la priorité de tous les messages précédents du même point de terminaison local à la même valeur, afin de garantir la remise rapide du message de priorité élevée sans rompre les attentes de remise séquentielle des messages précédemment transmis par le point de terminaison local. Les autres points de terminaison locaux ont leur propre séquence d’envoi et n’offrent donc pas de telles garanties d’ordre (bien que la bibliothèque Party fasse de son mieux pour conserver, si possible, l’ordre dans lequel ils ont été envoyés à l’origine).
La priorité de la file d’attente d’envoi d’un message est importante lorsqu’il y a plus d’octets à envoyer que la connexion ne peut en prendre en charge en raison de la qualité de la connexion ou de la réactivité du destinataire. L’envoi des messages les plus importants avec une priorité plus élevée garantit qu’ils ont la première possibilité d’utiliser les ressources réseau limitées. Si vous continuez à envoyer des messages plus rapidement qu’ils ne peuvent être transmis, les messages de priorité inférieure risquent d’être “affamés” et la file d’attente d’envoi du point de terminaison local associé continuera de croître. Assurez-vous de gérer cette croissance potentielle en annulant les messages superflus avec PartyLocalEndpoint::CancelMessages(), en utilisant le champ
timeoutInMilliseconds pour faire expirer automatiquement les messages mis en file d’attente depuis trop longtemps, ou simplement en réduisant la taille et/ou la fréquence des appels à PartyLocalEndpoint::SendMessage().
identityForCancelFilters uint32_t
Une valeur définie par l’appelant à utiliser lors de l’évaluation de l’applicabilité du message aux expressions de filtre d’annulation.
Cette valeur d’identité de message peut avoir n’importe quelle signification propre à l’appelant et n’est pas interprétée par la bibliothèque Party, sauf par PartyLocalEndpoint::CancelMessages() pour évaluer si le message correspond à l’expression de filtre d’annulation éventuellement fournie. Une valeur par défaut de zéro est utilisée lorsqu’aucune structure PartySendMessageQueuingConfiguration n’est fournie à PartyLocalEndpoint::SendMessage().
L’annulation de messages peut aider à empêcher la file d’attente d’envoi locale de croître excessivement en cas de mauvaises conditions réseau. L’annulation des identités de message correspondant à certaines expressions de filtre fonctionne bien lorsque vous avez des catégories de messages envoyés régulièrement avec les informations les plus récentes, qui doivent remplacer tout message obsolète précédemment mis en file d’attente et susceptible d’attendre encore une possibilité de transmission. L’annulation peut également être utile lorsque vous avez une instance ou une catégorie de messages opportunistes dont la perte ne serait pas fatale et qui ne valent pas la bande passante nécessaire pour tenter de les transmettre au détriment de messages plus importants mis en file d’attente.
Cette valeur d’identité locale ne fait pas partie de la charge utile de données transmise. Elle ne s’applique plus une fois que la transmission du message a commencé et que celui-ci ne peut plus être retiré de la file d’attente d’envoi locale par PartyLocalEndpoint::CancelMessages().
timeoutInMilliseconds uint32_t
La durée maximale, en millisecondes, pendant laquelle le message est autorisé à rester dans une file d’attente d’envoi gérée par Party en attendant une possibilité de transmission.
Si la transmission du message n’a pas commencé à l’expiration de ce délai en raison de la qualité de la connexion ou de la réactivité du destinataire, le message est abandonné et retiré de la file d’attente sans être envoyé. Une valeur
timeoutInMilliseconds de zéro indique qu’il ne doit pas y avoir de délai d’expiration et que le message doit rester en file d’attente jusqu’à ce qu’il soit transmis avec succès, explicitement annulé ou qu’il rencontre un échec de transmission tel qu’une déconnexion distante. Zéro est la valeur par défaut lorsqu’aucune structure PartySendMessageQueuingConfiguration n’est fournie à PartyLocalEndpoint::SendMessage(). Les délais d’expiration de la file d’attente d’envoi des messages peuvent aider à empêcher les files d’attente d’envoi de croître excessivement en cas de mauvaises conditions réseau. Ils fonctionnent bien avec les messages contenant des données périodiques sensibles au temps, pour lesquels il serait inutile de gaspiller de la bande passante à transmettre des messages obsolètes, car un message de remplacement complet plus récent est envoyé régulièrement et la perte d’un message individuel n’est pas fatale.
Cette valeur de délai d’expiration affecte uniquement la mise en file d’attente d’envoi gérée par Party. Elle n’affecte pas le temps nécessaire pour transmettre réellement un message (latence environnementale) et ne modifie pas la durée d’attente de l’accusé de réception de la transmission par le destinataire, le cas échéant.
Cette valeur de délai d’expiration est évaluée deux fois lors de l’envoi vers des cibles sans connexion directe d’égal à égal : une première fois pour les files d’attente d’envoi locales du client expéditeur vers le relais infonuagique transparent, en fonction des conditions environnementales locales et des débits de transmission vers le relais, et une seconde fois sur le relais lui-même, qui peut être contraint de mettre les messages en file d’attente avant de les transférer en raison de conditions réseau, de débits de transmission ou d’une réactivité des cibles distantes différents.
Configuration requise
En-tête : Party.hVoir aussi
Membres de PartyPartyLocalEndpoint::SendMessage
