2 Notifications-Push
Claude edited this page 2026-05-16 12:31:27 +02:00

Notifications Push

NoxIRC supporte les notifications Web Push (standard W3C) pour notifier les utilisateurs même quand l'onglet est fermé.

Prérequis

  • HTTPS obligatoire : les Service Workers ne fonctionnent qu'en HTTPS (ou localhost)
  • PUBLIC_URL doit être défini dans .env

Mise en place automatique

Les clés VAPID sont générées automatiquement au premier démarrage et stockées dans AppSetting (vapid_public_key et vapid_private_key). Aucune configuration manuelle n'est nécessaire.

Compatibilité navigateurs

Navigateur Mécanisme Onglet fermé
Chrome / Edge Web Push via FCM Oui
Firefox Web Push via Mozilla Autopush Oui
Brave Notification directe (FCM bloqué) Non
Safari Non supporté Non

Fallback Brave : quand FCM est bloqué, NoxIRC bascule automatiquement sur new Notification() directement depuis le handler WebSocket. Les notifications fonctionnent tant que l'onglet est ouvert (même en arrière-plan).

Activer les notifications (utilisateur)

  1. Paramètres → Notifications
  2. Activer "Notifications push"
  3. Accepter la permission navigateur
  4. Choisir les événements : mentions, messages privés, mots-clés

Événements notifiés

Événement Condition
Mention (highlight) Le nick de l'utilisateur apparaît dans un message de channel
Message privé Message reçu directement
Mot-clé Un mot-clé personnalisé apparaît dans un message

Mots-clés personnalisés

Déclenchent une notification même sans mention directe.

Via Paramètres → Notifications → Mots-clés ou API :

PUT /api/users/me/keywords
{"keywords": ["noxirc", "monprojet", "urgent"]}

Keep-alive

Pour éviter la suspension du Service Worker, le frontend envoie un ping toutes les 25 secondes quand l'onglet est visible :

POST /api/push/active

API

# Clé publique VAPID
GET /api/push/vapid-public-key

# S'abonner
POST /api/push/subscribe
{"endpoint": "https://fcm...", "p256dh": "...", "auth": "...", "user_agent": "Chrome/..."}

# Se désabonner
DELETE /api/push/unsubscribe
{"endpoint": "https://fcm..."}

# Mes subscriptions actives
GET /api/push/subscriptions

Dépannage

"Registration failed - push service error" : FCM bloqué (Brave). Les notifications directes fonctionnent quand l'onglet est ouvert.

Notifications non reçues :

  1. Vérifier HTTPS sur le domaine
  2. Vérifier que PUBLIC_URL est défini dans .env
  3. Vérifier les permissions navigateur (icône cadenas dans la barre d'URL)
  4. Désactiver puis réactiver dans Paramètres → Notifications