Principal Recursos Avançados Como configurar uma conexão WebSocket?

Como configurar uma conexão WebSocket?

Última atualização em Dec 11, 2024

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

Nota: Este recurso é experimental e a documentação pode mudar com cada nova versão. Além disso, a compatibilidade com versões anteriores não é garantida, então é essencial garantir que você esteja usando a versão mais recente.

Por que usar uma conexão WebSocket?

A conexão WebSocket permite atualizações de dados em tempo real, o que é ideal para clientes, como o SDK de Android ou iOS do Whatzaz . Isso atualiza o painel sem precisar recarregar a página, melhorando a experiência do usuário e a produtividade dos agentes.

Como configurar uma conexão WebSocket com o Whatzaz ?

Para configurar uma conexão WebSocket com o Whatzaz , você precisa iniciar uma conexão com o token de autenticação PubSub fornecido pelo Whatzaz . A URL para conexão é wss://<sua-url-de-instalacao>/cable. Se estiver usando o Whatzaz Cloud, a URL é **wss://app.**Whatzaz .com/cable.

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

Há dois tipos de tokens PubSub disponíveis no Whatzaz :

  • Token PubSub de Usuário: Este token tem os privilégios de um agente/admin e recebe todos os eventos listados no documento. Você pode obter o token chamando a API de Perfil.

  • Token PubSub de Contato: Whatzaz gera um token exclusivo para cada sessão de contato. Este token é usado para conectar-se ao WebSocket e receber atualizações em tempo real para essa sessão. Quando um contato é criado por meio das APIs públicas, o pubsub_token está incluído na resposta. Esse token dá acesso apenas aos eventos da sessão atual, como conversation.createdmessage.created, entre outros.

Como conectar ao WebSocket do Whatzaz ?

Para se conectar ao WebSocket do Whatzaz , use o comando subscribe e inclua seu pubSubTokenaccountId e userId (caso use um token de usuário) na solicitação de conexão. Aqui está um exemplo de código:


const stringify = (payload = {}) => JSON.stringify(payload);

const pubSubToken = "<contact/user-pub-sub-token>";

const accountId = "<seu-account-id>";

const userId = "<user-id>";

const connection = new WebSocket("wss://app.Whatzaz.com/cable");

connection.send(

  stringify({

    command: "subscribe",

    identifier: stringify({

      channel: "RoomChannel",

      pubsub_token: pubSubToken,

      account_id: accountId,

      user_id: userId,

    }),

  })

);

Como publicar a presença no servidor WebSocket?

Para manter o status dos usuários online no Whatzaz , envie um evento de atualização de presença a cada 30 segundos.

  • Atualizar presença de agente/admin:

    Envie o seguinte payload ao servidor:


const userPayload = stringify({

  command: "message",

  identifier: stringify({

    channel: "RoomChannel",

    pubsub_token: "<user-pubsub-token>",

    account_id: accountId,

    user_id: userId,

  }),

  data: stringify({ action: "update_presence" }),

});

connection.send(userPayload);
  • Atualizar presença de contato:

    Envie o seguinte payload:


const agentPayload = stringify({

  command: "message",

  identifier: stringify({

    channel: "RoomChannel",

    pubsub_token: "<user-pubsub-token>",

  }),

  data: stringify({ action: "update_presence" }),

});

connection.send(agentPayload);

Payloads WebSocket

Os eventos no Whatzaz podem conter diversos objetos no payload, como ConversationContactUser, e Message. Cada evento retorna dados específicos dependendo do tipo de objeto e do evento que ocorreu, como conversas criadas, mensagens enviadas ou atualizações de presença.

Agora você está pronto para configurar e utilizar o WebSocket no Whatzaz para oferecer uma experiência em tempo real e aumentar a eficiência de suas operações de atendimento!