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