Início Outros Canais Como configurar uma conexão WebSocket

Como configurar uma conexão WebSocket

Última atualização em Apr 15, 2025

A Akece permite que você estabeleça conexões em tempo real por meio do protocolo WebSocket, possibilitando a troca contínua de dados entre cliente e servidor. Essa funcionalidade é ideal para criar integrações personalizadas, como dashboards em tempo real, interfaces móveis e atualizações instantâneas de conversas.

Por que usar WebSocket?

A conexão WebSocket oferece atualizações em tempo real, sem a necessidade de recarregar a página. Isso proporciona uma experiência mais fluida para os usuários, especialmente em aplicações como aplicativos móveis, sistemas internos ou interfaces customizadas.

Como estabelecer a conexão com WebSocket

A URL da conexão com WebSocket da Akece segue o formato:

wss://dash.akece.com/cable

Para autenticação, é necessário utilizar o token de PubSub correspondente. Existem dois tipos:

  • Token de usuário: usado por atendentes e administradores. Pode ser obtido pela API de perfil.

  • Token de contato: gerado automaticamente ao criar um contato via API. Pode ser usado para conexões limitadas a uma sessão específica do cliente.

Exemplo de conexão

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

const pubSubToken = "<seu-pubsub-token>";
const accountId = "<id-da-conta>";
const userId = "<id-do-usuário>";

const connection = new WebSocket("wss://dash.akece.com/cable");

connection.send(
  stringify({
    command: "subscribe",
    identifier: stringify({
      channel: "RoomChannel",
      pubsub_token: pubSubToken,
      account_id: accountId,
      user_id: userId
    }),
  })
);

Atualizando status de presença

Para manter o status de presença online do atendente ou contato, envie o seguinte payload a cada 30 segundos:

// Para atendente/admin
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);
// Para contato
const contactPayload = stringify({
  command: "message",
  identifier: stringify({
    channel: "RoomChannel",
    pubsub_token: "<contact-pubsub-token>",
  }),
  data: stringify({ action: "update_presence" }),
});

connection.send(contactPayload);

Tipos de eventos suportados

Você receberá eventos em tempo real conforme a interação na plataforma. Alguns dos principais eventos incluem:

  • conversation.created – nova conversa iniciada

  • message.created – nova mensagem recebida

  • message.updated – mensagem atualizada

  • conversation.status_changed – alteração no status da conversa

  • conversation.typing_on / typing_off – indicador de digitação

  • contact.updated – contato atualizado

  • presence.update – mudança de status online/offline

  • notification_created – nova notificação gerada

Você pode usar esses eventos para criar interfaces dinâmicas, fluxos automatizados ou painéis personalizados.


Se precisar de ajuda para configurar sua integração com WebSocket, entre em contato com nosso suporte:
📩 [email protected] | 📱 @akece.ai