Chats et flux temps réel

Démonstration du routeur WebSocket Synapx pour collaboration technique, événements applicatifs, présence live et workflows panel/form.

Présentation

Le serveur ws.synapx.fr agit comme un routeur temps réel stateless. Il vérifie qu'un appel est autorisé, puis achemine la donnée vers le bon flux.

Il ne remplace pas le backend métier. Les droits et le contexte sont portés par un token signé, puis appliqués au niveau de la socket.

Channels du tenant

Connectez-vous dans l'espace Synapx pour voir vos channels et utiliser le générateur.

Générateur existant

Cette section réutilise la logique déjà en place dans Channels::NewBearer() pour créer un channel et son bearer.

Le générateur nécessite une session tenant active.

Démo live

Cette démo ouvre un vrai WebSocket sur wss://ws.synapx.fr/ws/shared. Le tenant de test est prérempli sur test. Collez un token signé de dev pour authentifier la socket.


        

Flux supportés

  • chat.tech — échanges techniques entre opérateurs
  • event.customer.created — création de client ou lead
  • event.invoice.created — émission de facture ou synchronisation
  • tech.presence — page courante et activité live
  • tech.cursor — position souris et guidage à distance
  • panel.patch — flux d'intervention technique
  • form.office360 — workflows bureautiques et panel/form
  • sav.general — support global du serveur

Stream veut dire "canal métier typé". C'est la famille de trafic autorisée par le token: discussion technique, événement facture, présence live, curseur, SAV.

Thread scope complète le stream en limitant le périmètre concret. Exemple: incident:* autorise tous les incidents, alors que incident:42 n'autorise qu'un seul dossier. Le routeur vérifie les deux: le stream et le thread.

Authentification

Le transport repose sur un token signé court contenant tenant, rôles, streams autorisés et scopes de thread.

  • Tenant — espace logique autorisé par le token
  • Subject — identité de l'acteur authentifié
  • Streams — types de flux autorisés en subscribe/publish
  • Thread scopes — pattern des threads autorisés dans ces flux
{
  "type": "auth",
  "token": "signed_ws_token"
}

Après authentification, la socket peut s'abonner à plusieurs threads et publier sur les streams autorisés.

Test rapide

curl https://ws.synapx.fr/health
curl https://ws.synapx.fr/config
{
  "type": "subscribe",
  "tenant": "adliss",
  "stream": "chat.tech",
  "thread_id": "incident:42"
}
{
  "type": "publish",
  "tenant": "test",
  "stream": "chat.tech",
  "thread_id": "incident:demo",
  "payload": {
    "body": "test ws public"
  }
}