Como configurar uma conexão WebSocket?

IM
Imperius
Atualizado em 28 de Aug, 2026 timer 6 min de leitura

WebSockets estabelecem uma conexão contínua entre o cliente e o servidor, permitindo comunicação bidirecional. O Talk utiliza essa conexão para fornecer atualizações em tempo real sobre eventos da plataforma. Para se conectar ao WebSocket do Talk, basta fornecer um token e seguir as instruções de configuração descritas neste guia.

Nota: Este recurso é experimental, e a documentação pode mudar a cada versão. Além disso, não há garantia de compatibilidade retroativa, por isso é importante garantir que você está utilizando a versão mais recente da implementação.

Uma conexão WebSocket permite atualizações de dados em tempo real, tornando-a ideal para clientes como um SDK de cliente Android ou iOS para o Talk. Isso ajuda a atualizar o dashboard sem a necessidade de recarregar a página. Assim, pode melhorar a experiência do usuário e aumentar a produtividade de um agente.

Para configurar uma conexão WebSocket com o Talk, você precisa iniciar uma conexão utilizando o token de autenticação PubSub fornecido pelo Talk. A URL para a conexão é wss://<your-installation-url>/cable. Se você estiver usando o Talk Cloud, pode usar wss://app.Talk.com/cable como URL.

Um token PubSub é um token utilizado para autenticar um cliente ao se conectar a um serviço PubSub (publicar-assinar). O cliente deve apresentar esse token ao serviço para estabelecer uma conexão e começar a publicar ou assinar mensagens.

Existem dois tipos de tokens PubSub disponíveis no Talk, conforme listado abaixo.

Token PubSub de Usuário: Este token possui os privilégios de um agente/admin e receberá todos os eventos listados posteriormente nesta página. Você pode obter o token PubSub chamando a API de Perfil.

Token PubSub de Contato: O Talk gera um token PubSub único para cada sessão de contato. Este token pode ser usado para se conectar ao WebSocket e receber atualizações em tempo real para a mesma sessão. Quando um contato é criado por meio das APIs públicas, o pubsub_token é incluído no payload da resposta. Este token concede acesso somente aos eventos relacionados à sessão atual, como conversation.created,  conversation.status_changed, message.created, message.updated, conversation_typing_on, conversation_typing_off e presence.update.

Consulte as APIs do Cliente para construir integrações em tempo real voltadas ao cliente utilizando o Talk.

Nota: Este token pode ser rotacionado regularmente de acordo com o tipo de instalação. Certifique-se de estar utilizando o token mais recente.

Para conectar-se ao WebSocket do Talk, utilize o comando subscribe e inclua seu pubSubToken, accountId, e userId (se estiver usando um token de usuário) na requisição de conexão. Aqui está um exemplo de como se conectar ao Talk.

Para manter o status online dos seus usuários no Talk, você pode enviar um evento de atualização de presença para o Talk a cada 30 segundos. Essa ação manterá o status do agente/contato como online.

Como atualizar a presença de um agente/admin?

Para atualizar a presença de um agente ou admin, envie o seguinte payload para o servidor:

Como atualizar a presença de um contato?

Para atualizar a presença de um contato, envie o seguinte payload para o servidor:

Um evento pode conter qualquer um dos objetos a seguir como payload. Diferentes tipos de objetos suportados no Talk são os seguintes.

Conversação

O seguinte payload será retornado para uma conversação.

Contato

O seguinte payload será retornado para um contato.

Usuário

O seguinte payload será retornado para um agente/admin.

Mensagem

O seguinte payload será retornado para uma mensagem.

Notificação

O seguinte payload será retornado para uma notificação.

Cada evento terá um atributo identifier no seguinte formato.

Cada evento incluirá um atributo message no qual retornamos o nome do evento, bem como os dados associados. Para ver a lista de eventos, consulte a documentação abaixo.

Este evento é acionado quando uma nova conversação é iniciada. Se estiver assinando o token PubSub do contato, este evento incluirá apenas dados relacionados à sessão específica associada ao token PubSub.

Disponível para: agente/admin, contato

Este evento é acionado e enviado aos agentes/admins que têm acesso à caixa de entrada, quando um contato lê uma mensagem.

Disponível para: agente/admin

Este evento é acionado e enviado aos agentes, admins, contatos quando uma nova mensagem é criada em uma conversação à qual eles têm acesso.

Disponível para: agente/admin, contato

Este evento é acionado e enviado aos agentes, admins, contatos quando uma mensagem é atualizada em uma conversação à qual eles têm acesso.

Disponível para: agente/admin, contato

Este evento é enviado aos agentes, admins, contatos quando o status de uma conversação é atualizado.

Disponível para: agente/admin, contato

Este evento é enviado aos agentes, admins, contatos quando um contato ou agente começa a digitar uma resposta.

Disponível para: agente/admin, contato

Este evento é enviado aos agentes, admins, contatos quando um contato ou agente para de digitar uma resposta.

Disponível para: agente/admin, contato

Este evento é enviado aos agentes/admins com acesso a uma caixa de entrada quando o agente atribuído é alterado.

Disponível para: agente/admin

Este evento é enviado aos agentes/admins com acesso a uma caixa de entrada quando o time atribuído é alterado.

Disponível para: agente/admin

Este evento é enviado aos agentes/admins quando dois contatos são mesclados e todas as conversações são consolidadas sob um único contato.

Disponível para: agente/admin

Este evento é enviado aos agentes/admins quando um contato é criado.

Disponível para: agente/admin

Este evento é enviado aos agentes/admins quando um contato é atualizado.

Disponível para: agente/admin

Disponível tanto para agente quanto para o contato, este evento fornece atualizações em tempo real sobre o status de disponibilidade dos usuários no sistema. O evento entregue aos contatos não incluirá informações sobre o status de disponibilidade de outros contatos.

Disponível para: agente/admin

Este evento é enviado aos agentes/admins quando uma notificação é criada.

Disponível para: agente/admin