La Red de Conocimientos Pedagógicos - Currículum vitae - Cuatro características principales de la mensajería instantánea y sus soluciones de implementación

Cuatro características principales de la mensajería instantánea y sus soluciones de implementación

Este artículo presenta cómo garantizar varias características de los mensajes en el software de mensajería instantánea.

El proceso de transmisión del mensaje se divide en tres etapas:

Entre ellas, el flujo ascendente y descendente del mensaje está garantizado mediante comunicación C/S full-duplex, y el latido garantiza la Disponibilidad del canal.

El procesamiento de mensajes lo implementa im-server, que incluye principalmente autenticación de mensajes, auditoría de mensajes y descompresión de mensajes. Debe ser estable y eficiente, y puede implementarse a través de servicios independientes para garantizar su escalabilidad.

Para mensajes grupales, es necesario desempacar. Un paquete enviado genera n paquetes recibidos, donde n es el número actual de miembros del grupo.

En una única sesión de chat entre el Usuario 1 y el Usuario 2, el Usuario 1 envió tres mensajes, a saber, aa, bb y cc.

Aa y cc se enviaron correctamente, pero bb no se pudo enviar después de que el cliente reintentó automáticamente durante 3 minutos debido a problemas de red o del dispositivo. Se mostrará un pequeño botón para reenviar y el usuario podrá decidir si desea reenviar.

Si el usuario hace clic en el botón para reenviar bb, ¿cómo se mostrará la lista de mensajes de usuario1 y usuario2?

En una única sesión de chat entre el Usuario 1 y el Usuario 2, el Usuario 1 envió tres mensajes, a saber, aa, bb y cc.

Entre ellos, aa se envía correctamente, bb y cc se retransmiten automáticamente, el usuario2 envía dd y ee y el usuario2 envía correctamente. Después de eso, bb y cc se reenvían automáticamente con éxito.

Entonces, ¿cómo se mostrarán las listas de mensajes del usuario1 y del usuario2?

En la sesión de chat grupal del Usuario 1, Usuario 2 y Usuario 3, el Usuario 1 y el Usuario 2 envían mensajes a im-server al mismo tiempo, incluso la marca de tiempo generada por im-server.

Entonces, ¿cómo mostrar la lista de mensajes de usuario1, usuario2 y usuario3?

El orden de los mensajes es más una experiencia de usuario.

Cómo lograr la confiabilidad de los mensajes y garantizar que no se repitan ni se filtren requiere partir de los tres enlaces de transmisión de mensajes.

En el proceso de c->en S, se utiliza el envío de confirmación. Si el cliente no recibe el envío de confirmación, lo retransmitirá automáticamente.

Este proceso puede garantizar que el mensaje no se filtre. Sin embargo, el servidor puede recibir mensajes duplicados. Si existe un mensaje con un ID de secuencia duplicado, el servidor debe replicarlo.

El proceso del servidor que procesa mensajes puede involucrar múltiples servicios, como SessionManager y Auditor.

Para garantizar la confiabilidad de los mensajes, cada interacción con RabbitMQ debe garantizar una entrega exitosa y un consumo seguro.

En el procesamiento de s->en C, se utiliza el método de recepción-ack. Si el servidor no recibe el acuse de recibo, lo retransmitirá automáticamente.

Este proceso puede garantizar que el mensaje no se filtre. Sin embargo, el destinatario puede recibir mensajes duplicados. Si hay un mensaje con un ID de secuencia duplicado, el receptor debe copiarlo.

Si el receptor no está en línea, cuando el receptor está en línea, puede obtener mensajes históricos a través de la API y verificar la lista de mensajes históricos dos veces (el servidor debe completar la primera verificación) para asegurarse de que no haya noticias de ID de secuencia duplicada.

El sistema de mensajería instantánea no es estándar. Aunque el protocolo XMPP intentó resolver este problema, resultó poco realista.

Casi todos los proveedores de mensajería instantánea tienen sus propios protocolos propietarios y diferentes lógicas de implementación, lo que también determina que incluso para el mismo problema técnico, sea difícil para la mensajería instantánea tener rutinas de implementación fijas y soluciones estándar.

Sin embargo, se deben lograr varios indicadores concretos del sistema de mensajería instantánea.

Durante el proceso de implementación, es necesario considerar la rentabilidad, ya sea buscar una mayor concurrencia del sistema o un flujo de datos más confiable; si buscar un mayor rendimiento del sistema o una mejor escalabilidad y capacidades de recuperación ante desastres.

Finalmente, recomiendo una columna de mensajería instantánea:

/u/jackjiang