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_URLdoit ê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)
- Paramètres → Notifications
- Activer "Notifications push"
- Accepter la permission navigateur
- 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 :
- Vérifier HTTPS sur le domaine
- Vérifier que
PUBLIC_URLest défini dans.env - Vérifier les permissions navigateur (icône cadenas dans la barre d'URL)
- Désactiver puis réactiver dans Paramètres → Notifications