FLIN traite les WebSockets comme une fonctionnalité de premier plan du runtime. Le même serveur HTTP embarqué gère aussi les upgrades WebSocket. Vous définissez les endpoints WebSocket avec des blocs ws, et ils coexistent avec les blocs route réguliers dans le même fichier.
flinguard auth
ws {
on connect {
broadcast("system", "{session.userName} joined the chat")
}
on message(data) {
save ChatMessage { user: session.user, content: data.text }
broadcast(data.room || "general", {
user: session.userName,
text: data.text,
time: now()
})
}
on close {
broadcast("system", "{session.userName} left the chat")
}
}Les guards s'appliquent aux connexions WebSocket comme aux routes HTTP. Le guard auth assure que seuls les utilisateurs authentifiés peuvent ouvrir une connexion WebSocket. Les guards sont évalués AVANT que le handshake WebSocket ne se termine.
Ceci est la partie 103 de la série "How We Built FLIN".
Navigation de la série : - [101] The Middleware System - [102] Guards: Declarative Security for Routes - [103] WebSocket Support Built Into the Language (vous êtes ici) - [104] File Upload Support