WEBSOCKET
authenticateConectar e autenticar
As telas do sistema se atualizam sozinhas por Socket.IO, no mesmo endereço da API. Conectado e autenticado, o seu sistema recebe os mesmos avisos: paciente cadastrado, exame agendado, laudo liberado.
- Exige o token de acesso — como obter
O que enviar
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
token | string | Sim | O access_token do login. |
Do zero ao primeiro aviso
1
Conecte
No endereço da API, caminho padrão /socket.io/. O servidor responde com o evento connected.
import { io } from "socket.io-client";
const socket = io("https://api-endosystem.imagemais.com.br", { transports: ["websocket"] });2
Autentique com o token do login
Emita authenticate com o access_token. A resposta é authenticated (deu certo) ou auth_error.
socket.on("connect", () => {
socket.emit("authenticate", { token: accessToken });
});
socket.on("authenticated", (dados) => console.log("na sala", dados.account_room));
socket.on("auth_error", (erro) => console.error(erro.message));3
Escute os eventos
Cada evento tem um nome fixo e um objeto com os dados. Os nomes estão nas páginas desta seção.
socket.on("consultation_report_created", ({ report }) => {
console.log("laudo liberado", report.id, report.patient.name);
});{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}O que chega
{
"message": "Autenticado com sucesso",
"account_room": "account:0b7d2e4f-8a91-4c3b-b5e6-2f1a9c8d7e60",
...{
"message": "Autenticado com sucesso",
"account_room": "account:0b7d2e4f-8a91-4c3b-b5e6-2f1a9c8d7e60",
"user": {
"id": "6a8c0e2b-4d6f-4a8b-9c1e-3f5a7b9d1c3e",
"name": "Integração Sistema X",
"email": "integracao@clinica.com.br",
"role": "operator"
}
}{
"message": "Token é obrigatório"
}{
"message": "Token é obrigatório"
}{
"message": "Usuário inválido"
}{
"message": "Usuário inválido"
}{
"message": "Erro na autenticação: Signature has expired"
}{
"message": "Erro na autenticação: Signature has expired"
}