Pregunta

Tengo un complemento para OpenFire que crea y entrega un mensaje a un usuario usando

XMPPServer.getInstance().getMessageRouter().route(message)

Lo que me gustaría saber es qué pasa con ese mensaje si el usuario no está en línea.

Mi objetivo es que solo se entregue el mensaje si el usuario está en línea y, de lo contrario, no se puede enrutar al contenedor de bits.

¿Fue útil?

Solución

Todo se reduce a la configuración de Openfire. En la consola de administración de Openfire, vaya a Servidor - > Configuración del servidor - > Mensajes sin conexión. Hay opciones para almacenar, rebotar y soltar.

  • Almacenar: entregar el mensaje cuando el el usuario vuelve a conectarse.
  • Soltar: simplemente descarta el mensaje.
  • Rebotar: descartar y notificar al remitente con un mensaje de devolución.

Otros consejos

Otro enfoque, si solo desea que estos mensajes no se desconecten sin afectar la entrega de otros mensajes, es usar type = 'headline'. Los titulares no están muy bien especificados, pero RFC 3921bis La Sección 5.2.2 dice:

  

titular: el mensaje proporciona una alerta, una notificación u otra información a la que no se espera respuesta (por ejemplo, titulares de noticias, actualizaciones deportivas, datos de mercado casi en tiempo real y contenido sindicado). Debido a que no se espera una respuesta al mensaje, normalmente un cliente receptor presentará un mensaje de tipo " encabezado " en una interfaz que diferencie apropiadamente el mensaje de mensajes independientes, mensajes de chat o mensajes de chat grupal (por ejemplo, al no proporcionarle al destinatario la capacidad de responder). El servidor de recepción DEBE enviar el mensaje a todos los recursos disponibles del destinatario.

La mayoría de los servidores actuales solo dejarán caer los titulares de manera silenciosa a los usuarios sin conexión y se entregarán al recurso de mayor prioridad si el usuario está en línea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top