Pular para o conteúdo principal

Presenca WebSocket

Doc da API: ver APIs

Diagrama de sequencia

sequenceDiagram
participant Front as default_crm-front
participant GW as PresenceGateway
participant JWT as JwtService
participant Mem as UserPresenceService
participant MainDB as PostgreSQL Principal
participant Admin as Admin Observer

Front->>GW: connect /presence auth.token JWT
GW->>JWT: verify token
alt token invalido
GW-->>Front: presence:error disconnect
else role admin
GW->>GW: join admin:observer
GW->>Mem: getAllActiveSessions
GW-->>Front: presence:sync users
else tenant user
GW->>MainDB: find CompanyUser
alt tenant mismatch ou user missing
GW-->>Front: presence:error disconnect
else OK
GW->>GW: join tenant:tenantId
GW->>Mem: register session online
GW-->>Front: presence:sync users
GW-->>Front: presence:join to room
GW-->>Admin: presence:join
end
end

Front->>GW: presence:status online|away
GW->>Mem: updateStatus
GW-->>Front: presence:status broadcast room

Front->>GW: disconnect
GW->>Mem: removeBySocketId
alt ultima conexao do user
GW-->>Front: presence:leave
GW-->>Admin: presence:leave
else
GW-->>Front: presence:connection_change
end