[Resolvido] Mensagens recebidas pela SDK fora da ordem

Estamos desenvolvendo um integração com a plataforma de vocês com uma ferramenta de CRM, onde será possível através da SDK C# o operador realizar o atendimento do cliente utilizando a interface do CRM.

Em alguns testes utilizando o Telegram, na situação em que o cliente está sem conexão e envia varias mensagens e a conexão é retomada, o Telegram dispara todas as mensagens não enviadas em um curto período de tempo, isso causa o recebimento fora da ordem das notificações de recebimento de mensagens dentro da SDK.

Vendo alguns outros posts, percebi que vocês comentam que a Blip não garante a entrega das mensagens na ordem de envio.

Tentando achar uma solução para este problema, verifiquei que na propriedade Metadata das mensagens recebidas, existe um valor chamado date_created, e em algumas situações o valor #envelope.storageDate também pode ser encontrado.

Queria que vocês dessem uma descrição do que seria esses valores, e se partir deles é seguro eu realizar uma ordenação para garantir a apresentação das mensagens na ordem correta na interface.

Olá @Renan_Magalhaes_Sara,

vamos as dúvidas:

Sim, o BLiP não garante a ordem de nenhuma mensagem. Obs.: Isso não é algo apenas do BLiP, boa parte das ferramentas de mensageria (incluindo os canais, como o Telegram) são assíncronos e não garantem a ordem das mensagens.

date_created é a data em que a mensagem LIME passou pelo pipeline de processamento no servidor do BLiP Chat. Ou seja, apenas mensagens nesse canal terão esse metadata.

envelope.storageDate é a data em que a mensagem LIME foi armazenada no banco de dados do BLiP. Esse valor, será sempre maior do que o date_created e existirá apenas para mensagens com o conteúdo diferente de Sensitive (esse tipo de conteúdo não é armazenado no servidor).

Você pode utilizar o valor envelope.storageDate como referência, mas lembre-se que se o próprio canal não garantir a ordem das requisições você poderá receber as mensagens fora de ordem.

1 Curtida

Obrigado pelas informações @rafaelpa! Foi de grande ajuda!