Recomendações para o uso do Rox.Chat Mobile SDK
Este artigo descreve os problemas mais comuns encontrados ao desenvolver/usar um aplicativo móvel baseado no Rox.Chat Mobile SDK, suas soluções e recomendações úteis para os desenvolvedores.
#1 Ao abrir um chat no aplicativo móvel, a sessão é fechada imediatamente
Se ocorrer um erro crítico ao se conectar ao servidor, a sessão poderá se fechar sozinha, pois quando esse erro ocorre, ela não pode mais ser usada.
Nesse caso, recomenda-se tratar os erros críticos usando o método onError
da interface FatalErrorHandler
e chamar .setErrorHandler(FatalErrorHandler)
ao configurar a sessão. O tratamento, nesse caso, significa exibir uma mensagem de erro e/ou tentar criar uma nova sessão.
Também é recomendável verificar se o aplicativo móvel trata todos os erros críticos que podem vir do servidor.
#2 Ao enviar a primeira mensagem do aplicativo móvel, o pushbot envia a primeira mensagem duas vezes
Isso pode acontecer se o departamento no qual o chat está sendo executado tiver a configuração "O visitante deve fazer uma pergunta primeiro ", mas o aplicativo móvel não levar isso em consideração: nesse caso, ao iniciar o chat a partir do aplicativo móvel, a primeira mensagem do visitante será enviada não como a primeira pergunta, mas como uma mensagem normal. Para evitar essas situações no aplicativo móvel, o método startChatWithFirstQuestion
deve ser usado.
#3 Não é possível iniciar um chat no aplicativo móvel enviando um arquivo
Nesse caso, vale a pena verificar a versão do SDK que você está usando para ver se é possível iniciar um chat enviando um arquivo. Por padrão, o método sendFile
verifica se há um chat ativo antes de enviar um arquivo. Se não houver um bate-papo na sessão, o método retornará um erro. Entre em contato com o [suporte técnico] (mailto:support@rox.chat) para esclarecer a funcionalidade da versão do SDK que está usando.
#4 O servidor fica lento ao abrir um grande número de sessões ao mesmo tempo
Alguns aplicativos móveis baseados no Rox.Chat Mobile SDK têm a funcionalidade de obter informações sobre o número de mensagens não lidas. Devido a peculiaridades técnicas do Rox.Chat, é possível obter o número de mensagens não lidas somente quando há uma sessão ativa, o que faz com que não seja incomum experimentar atrasos graves e longos no Rox.Chat Server. Isso se deve ao fato de que um grande número de sessões abertas simultaneamente cria uma carga pesada no servidor. Se a funcionalidade descrita acima for implementada em seu aplicativo móvel, é recomendável fazer o seguinte:
-
Mantenha a sessão ativa somente quando a tela de bate-papo estiver aberta
-
Se você precisar atualizar dados, inicie a sessão somente para atualizar esses dados e interrompa-a imediatamente após receber a atualização.
!!! Note "N.B."
Se ChatState
corresponder a none/closed
, a sessão poderá ser encerrada, pois o número de mensagens não lidas não muda em um chat inativo. Isso pode ser rastreado por meio do ChatStateListener
.
- Em outros casos, não deve haver nenhuma sessão ativa no aplicativo móvel
Um visitante autorizou no mesmo aplicativo móvel em diferentes dispositivos/em vários aplicativos móveis no mesmo dispositivo, mas as notificações por push não estão chegando a todos eles
Caso um visitante autorize por meio de um aplicativo móvel usando o Rox.Chat Mobile SDK, as notificações push relacionadas ao chat de suporte chegarão a ele em todos os dispositivos e em todos os aplicativos em que ele estiver autorizado usando seu visitor_id
e/ou provided_visitor_id
, ou seja, caso haja vários aplicativos móveis conectados a um servidor Rox.Chat em um dispositivo, as notificações, por exemplo, sobre uma nova mensagem serão enviadas a todos esses aplicativos (ou a todos os dispositivos em que o aplicativo móvel estiver instalado e autorizado). Caso as notificações por push não sejam enviadas a todos os aplicativos/dispositivos, recomendamos que se certifique de que, em todos os casos de autorização, o mesmo visitante receba o mesmo identificador (visitor_id
ou provided_visitor_id
).