A entrega da mensagem quando o usuário está offline
Pergunta
Eu tenho um plugin para OpenFire que cria e fornece uma mensagem para um usuário usando
XMPPServer.getInstance().getMessageRouter().route(message)
O que eu gostaria de saber é o que acontece com essa mensagem se o usuário não está online.
Meu objetivo é apenas para que a mensagem entregue se o usuário está online, e falhar ou ser encaminhado para o balde bit contrário.
Solução
É tudo para baixo para Openfire configuração. No console de administração Openfire, vá para o servidor -> Configurações do servidor -> mensagens offline. Há opções para loja, salto e queda.
- loja: entregar a mensagem quando o user volta online.
- Drop: Apenas descartar a mensagem .
- Bounce:. Descartar e notificar o remetente com uma mensagem de retorno
Outras dicas
Outra abordagem, se você quiser apenas estas mensagens para não ficar offline sem afetar a entrega de outras mensagens, é usar type = 'manchete'. Manchetes não estão terrivelmente bem especificado, mas RFC 3921bis Seção 5.2.2 diz:
manchete - A mensagem fornece um alerta, uma notificação, ou outras informações para que se espera nenhuma resposta (por exemplo, manchetes de notícias, atualizações de esportes, dados de mercado em tempo quase real e conteúdo sindicado). Porque não respondeu à mensagem é esperado, normalmente um cliente receber irá apresentar uma mensagem do tipo "título" em uma interface que apropriadamente diferencia a mensagem de mensagens independentes, mensagens de chat ou mensagens GroupChat (por exemplo, por não fornecer o receptor com o capacidade de resposta). O servidor de recepção deve entregar a mensagem a todos os recursos disponíveis do destinatário.
A maioria dos servidores de hoje vai apenas silenciosamente cair manchetes para usuários offline, e entregar ao maior recurso prioridade se o usuário estiver online.