Sintaxis
Miembros
priority int8_t
La prioridad del mensaje en la cola local en relación con los datos de chat o los mensajes enviados desde otros puntos de conexión locales.
priority debe ser un valor entre c_minSendMessageQueuingPriority y c_maxSendMessageQueuingPriority, ambos incluidos. Los números más altos representan una prioridad relativa mayor (se transmitirán primero) sobre los números más bajos. El valor predeterminado cuando no se proporciona ninguna estructura PartySendMessageQueuingConfiguration a PartyLocalEndpoint::SendMessage() es c_defaultSendMessageQueuingPriority, que se encuentra exactamente en la mitad del intervalo de enteros con signo (cero). La prioridad de la cola de envío no modifica el orden en que se transmiten o entregan los mensajes enviados desde un punto de conexión local determinado. Solo afecta al orden de los mensajes de distintos puntos de conexión locales, o entre un punto de conexión y los datos de chat transmitidos internamente, que usan la prioridad
c_chatSendMessageQueuingPriority. La cola de envío del punto de conexión local que tenga los mensajes con el valor de prioridad más alto tendrá sus mensajes aptos para la transmisión primero. Si todos los mensajes restantes en cola de los puntos de conexión locales tienen la misma prioridad, los mensajes individuales serán aptos para la transmisión en el mismo orden en que se produjeron sus llamadas a PartyLocalEndpoint::SendMessage(). Una forma de entender este comportamiento es que los mensajes de alta prioridad elevan automáticamente la prioridad de todos los mensajes anteriores del mismo punto de conexión local al mismo valor, a fin de garantizar la entrega oportuna del mensaje de alta prioridad sin romper las expectativas de entrega secuencial de los mensajes transmitidos previamente por el punto de conexión local. Los demás puntos de conexión locales tienen su propia secuencia de envío y, por tanto, no tienen esas garantías de orden (aunque la biblioteca Party hace un esfuerzo razonable por conservar, cuando es posible, el orden en que se enviaron originalmente).
La prioridad de la cola de envío de un mensaje es importante cuando hay más bytes por enviar de los que la conexión puede admitir debido a la calidad de la conexión o a la capacidad de respuesta del receptor. Enviar los mensajes más importantes con mayor prioridad garantiza que tengan la primera oportunidad de usar los recursos de red limitados. Si continúa enviando mensajes más rápido de lo que se pueden transmitir correctamente, los mensajes de menor prioridad pueden quedar “sin recursos” y la cola de envío del punto de conexión local asociado seguirá creciendo. Asegúrese de gestionar ese posible crecimiento cancelando los mensajes superfluos con PartyLocalEndpoint::CancelMessages(), usando el campo
timeoutInMilliseconds para agotar automáticamente el tiempo de espera de los mensajes que llevan demasiado tiempo en cola, o simplemente reduciendo el tamaño o la frecuencia de las llamadas a PartyLocalEndpoint::SendMessage().
identityForCancelFilters uint32_t
Un valor definido por el autor de la llamada que se usa al evaluar la aplicabilidad del mensaje con las expresiones de filtro de cancelación.
Este valor de identidad del mensaje puede tener cualquier significado específico del autor de la llamada, y la biblioteca Party no lo interpreta salvo para su uso por parte de PartyLocalEndpoint::CancelMessages() al evaluar si el mensaje coincide con la expresión de filtro de cancelación proporcionada opcionalmente. Se usa un valor predeterminado de cero cuando no se proporciona ninguna estructura PartySendMessageQueuingConfiguration a PartyLocalEndpoint::SendMessage().
Cancelar mensajes puede ayudar a evitar que la cola de envío local crezca excesivamente cuando se experimentan condiciones de red deficientes. Cancelar las identidades de mensaje que coinciden con determinadas expresiones de filtro funciona bien cuando tiene categorías de mensajes que se envían con regularidad con la información más reciente y que deben reemplazar cualquier mensaje obsoleto en cola que aún pueda estar esperando una oportunidad de transmisión. La cancelación también puede ser útil cuando tiene una instancia o categoría de mensajes oportunistas cuya pérdida no sería fatal y que no merecen el ancho de banda necesario para intentar transmitirlos en lugar de otros mensajes en cola más valiosos.
Este valor de identidad local no forma parte de la carga de datos transmitida. No tiene aplicabilidad una vez que el mensaje comienza a transmitirse y ya no se puede quitar de la cola de envío local mediante PartyLocalEndpoint::CancelMessages().
timeoutInMilliseconds uint32_t
El tiempo máximo, en milisegundos, que se permite que el mensaje permanezca en una cola de envío administrada por Party a la espera de una oportunidad de transmisión.
Si el mensaje no ha comenzado a transmitirse cuando transcurre este tiempo de espera debido a la calidad de la conexión o a la capacidad de respuesta del receptor, el mensaje se anulará y se quitará de la cola sin enviarse. Un valor de
timeoutInMilliseconds de cero indica que no debe haber tiempo de espera y que el mensaje debe permanecer en cola hasta que se transmita correctamente, se cancele explícitamente o encuentre algún error de transmisión, como una desconexión remota. Cero es el valor predeterminado cuando no se proporciona ninguna estructura PartySendMessageQueuingConfiguration a PartyLocalEndpoint::SendMessage(). Los tiempos de espera de la cola de envío de mensajes pueden ayudar a evitar que las colas de envío crezcan excesivamente cuando se experimentan condiciones de red deficientes. Funcionan bien con mensajes que contienen datos periódicos y sensibles al tiempo, en los que sería un desperdicio de ancho de banda transmitir los que están obsoletos porque se envía con regularidad un mensaje de reemplazo completo más reciente, y la pérdida de cualquier mensaje individual no es fatal.
Este valor de tiempo de espera solo afecta a las colas de envío administradas por Party. No afecta al tiempo que se tarda en transmitir realmente un mensaje (latencia del entorno) ni modifica cuánto tiempo se espera a que el receptor confirme la transmisión, si procede.
Este valor de tiempo de espera se evalúa dos veces al enviar a destinos sin conexiones directas entre pares: una vez para las colas de envío locales del cliente emisor hacia la retransmisión transparente en la nube, afectadas por las condiciones del entorno local y las velocidades de transmisión hacia la retransmisión, y una segunda vez en la propia retransmisión, que puede verse obligada a poner los mensajes en cola antes de reenviarlos en función de condiciones de red, velocidades de transmisión o capacidad de respuesta de los destinos remotos diferentes.
Requisitos
Encabezado: Party.hConsulte también
Miembros de PartyPartyLocalEndpoint::SendMessage
