DNC

De Wiki IRC
La version imprimable n’est plus prise en charge et peut comporter des erreurs de génération. Veuillez mettre à jour les signets de votre navigateur et utiliser à la place la fonction d’impression par défaut de celui-ci.

DNC (ou Discussionner Bouncer ou même DiscuBNC) est le nom de projet qui consiste à garder un chatteur sous mobile en ligne dés qu'il subit une mise en veille automatique des onglets dans son navigateur web (mode économie batterie d'énergie activé, tchat mis en arrière-plan, ou écran éteint...). il restera connecté pendant 2h sur le tchat s'il ne clique pas sur "Menu > Se déconnecter" avant de partir. S'il ne part pas ou même s'il part, à son retour d'afk, il obtiendra la suite des messages en salons et en PVs. Plus d'infos en lisant la suite de cette page.

DiscuBNC : A quoi ça sert ?

Lorsqu'un utilisateur non-enregistré est connecté sur le tchat avec un smartphone ou tablette et qu'il utilise Discussionner, il sera connecté classiquement au tchat sans DiscuBNC.

Il pourra s'inscrire en devenant utilisateur enregistré. Une fois identifié avec son mobile sur Discussionner, il sera connecté au tchat via DiscuBNC. Cela permet de le garder connecté au tchat dés que celui-ci est mis en arrière-plan, ou écran éteint etc...
Par défaut, il restera connecté pendant 2h sur le tchat s'il ne clique pas sur "Moteur > Se déconnecter" avant de partir. S'il ne part pas ou même s'il part, à son retour il obtiendra la suite des messages en salons et en PVs.

Pourquoi il y a des déconnexions intempestives en étant utilisateur non-enregistré ?

En tant qu'utilisateur non-enregistré, le chatteur sur le tchat n'utilise pas notre DNC, il se déconnectera du tchat très souvent pour l'une des causes suivantes:

  • Économie d'énergie ou batterie activé sur son appareil ;
  • Mode avion activé par moment ;
  • Mode 4g qui coupe à certaines endroits de son trajet (s'il est sur la route) et la reconnexion reprend quelques minutes après dés que la connexion mobile retrouve une connexion internet ;
  • Si vous avez tout désactivé, votre appareil se déconnectera quand même du tchat pour ces causes: l'écran est éteint depuis longtemps, chrome ou safari ou l'appli est mise en arrière plan depuis longtemps.

Pour éviter tout ça, veuillez vous inscrire sur https://discussionner.com/register ou si vous êtes déjà utilisateur enregistré, alors connectez-vous ici avec votre smartphone et votre pseudo de connexion: https://discussionner.com/login


Problème courant sur nos smartphones

Dans notre smartphone (Android ou iOS etc...), dés que nous allumons une application qui doit rester en ligne 24h sur 24, pendant qu'elle est en arrière-plan (exemples: Instagram, Snapchat, Messenger ...), en réalité elle ne reste pas en ligne 24h sur 24, elle fera des coupures (timeout) dans de nombreux moments mais de façon très discrète. Il suffit qu'on rallume notre téléphone ou que l'on affiche l'application, et aussitôt l’application se reconnecte au socket du service à la vitesse de la lumière.

Les notifications, elles, sont en temps réel mais c'est géré par un autre service. Ce système n'est compatible qu'avec les notifications.

Voici un exemple de scénario réel avec une application comme Snapchat, Instagram, Messenger ou autre :

  1. On démarre l'application, on ouvre une conversation, et on discute avec une personne
  2. Ensuite on répond à quelqu'un par SMS ou on s'absente et l'écran du téléphone s'éteint
    • quelques minutes après, très discrètement, l'application se déconnecte du socket (l'utilisateur n'est plus connecté).
  3. Ensuite nous revenons sur notre application en l'ouvrant à nouveau
    • l'application se reconnecte très discrètement au socket (de retour en ligne), tout est fait à la vitesse de la lumière ou presque.
  4. On voit la suite des messages.

Cette fausse faille existe sur tous les mobiles. Il faut noter qu'en réalité ce n'est pas une faille, c'est une technique qui se déconnecte du socket afin d'éviter de consommer la batterie du téléphone mobile pour rien à cause du socket inactif.

Sur IRC il existe la même fausse faille mais elle est plus sale, la voici :

  1. On démarre l'application tchat (sur Chrome par exemple), on ouvre une conversation, et on discute avec une personne
  2. On répond à quelqu'un par SMS ou on s'absente et l'écran du téléphone s'éteint
    • quelques minutes après (pas discret du tout), l'application se déconnecte du socket, donc de l'IRC (l'utilisateur n'est plus connecté).
  3. Ensuite nous revenons sur notre application en l'ouvrant à nouveau
    • l'application se reconnecte au socket (de retour en ligne sur IRC) mais pas du tout discret, rien n'est fait à la vitesse de la lumière car une reconnexion à l'IRC met quelques secondes pour se faire.
  4. On ne voit pas la suite des messages car il s'était déconnecté.


Le but de DiscuBNC

Le tchat web Discussionner utilise ce serveur BNC afin que le tchat fonctionne comme ceci :

  1. On démarre l'application de tchat (sur Chrome par exemple), on ouvre une conversation, et on discute avec une personne
  2. On répond à quelqu'un par SMS ou on s'absente et l'écran du téléphone s'éteint
    • quelques minutes après, très discrètement, l'application se déconnecte du socket BNC (l'utilisateur n'est plus connecté à DiscuBNC) mais il est toujours sur le tchat IRC
  3. Ensuite nous revenons sur notre application en l'ouvrant à nouveau
    • l'application se reconnecte très discrètement au socket BNC (de retour en ligne), tout est fait à la vitesse de la lumière ou presque.
  4. On voit la suite des messages.


Liste des bugs sur DiscuBNC

N° du bug Description du bug / le symptôme Progression/résolu à... Dernière mise à jour
#1 La reconnexion sur IRC n'est pas toujours au point car pas assez rapide. La récupération des messages à la reconnexion n'est pas assez rapide, surtout pour les très nombreuses lignes 20% 24/04/2021 (En test: nouveau système de la remise des nouveaux messages)
#2 La reconnexion n'est pas toujours au point par moment (doublons des lignes...). Dés que ce problème apparait, il suffit de relancer le tchat. 50% Entre mai et aout 2021 ce bug a été repéré quelque fois chez des utilisateurs mais il reste trés rare.
#3 Problème à cause des erreurs de type "undefined", cela arrive très rarement, en moyenne à un utilisateur tous les 15 jours.

Ce problème pourrait se produire à cause du mode +H
La reproduction du bug était possible depuis le 21/05/21 en faisant:
1) Rejoindre un salon comme #quebec
2) Partir du salon #quebec au bout de quelques secondes ou aussitôt
3) relancer l'applet sur DNC (sans se déconnecter)
4) Un onglet "undefined" ou #quebec" apparait ensuite mais ils sont bugués
5) relancer l'applet sur DNC (sans se déconnecter)
6) L'onglet "undefined" apparait tout le temps.


Le mode +H a été retiré de tous les salons à partir du 21/05/21.


Edit du 22/05/2021 : Le problème ne vient pas du +H. Le mode +H vient d'être remis comme avant. Le problème il venait plutôt des messages qui sont encore dans le buffer array() du serveur DNC. La reproduction du bug est identique comme dans l'exemple du salon #quebec. Depuis ce matin, le client stoppera tous les messages inconnus de ce buffer. C'est en test.


95% 22/05/2021
#4 Les ghosts sont lisibles par moment (il doit y avoir un problème entre le serveur de l'applet et serveur DNC). Réparé temporairement par kill auto de Sysop au bout de 2min.
#5 Chaque mobile ne reconnait pas qu'il faut se déconnecter aussitôt dés que l'écran s'éteint ou que le tchat est mis en arrière-plan. C'est le même bug comme sur https://stackoverflow.com/questions/52056075/minimum-value-for-pinginterval-and-pingtimeout-in-socket-io
Ce bug a été détecté le 11/04/2021
Ce bug pourrait aussi se résoudre si réparation du #1 effectif à 100%.
50% (via des PingTimeout et PingInterval sur un DNC-SHIRC dédié) 24/04/2021
#6 Comment reproduire ce bug : [19:47:15] <Tissou> Erreur d'ouverture du salon: undefined stoppé.

1) Se connecter au dnc
2) Partir d’un salon très vite à peine connecté (exemple #ados), sinon le bug ne se produira pas
3) Actualiser le tchat (pas obligatoire de faire celui-ci)
4) Se mettre away et revenir d’away (en automatique)
5) le bug s’affiche à la fois pour le 3 et pour chaque 4
Si le bug ne se produit pas alors refaire l’étape 2 beaucoup plus rapidement.

Impossible de savoir si ce problème vient du serveur DNC ou du client-dsc
Note: ce bug pourrait être lié au bug #3

20% 01/09/2021 Corrigé temporairement / en cours
21/09/2021 à partir de 21h00 : Tentative de résolution (en test)
#7 Déconnexion de tous les utilisateurs du BNC (crash) en cas d'erreur causé par un seul utilisateur. résolu dans la version beta2 Septembre 2020
#8 Ne prévient pas la déconnexion en cas où le serveur DNC est en maintenance et qu'il vient de se couper, quand cela arrive il suffit de relancer le tchat. résolu dans la version beta2 Septembre 2020
#9 Les caractères slash "/" et "espace" ne sont pas acceptés dans les mots de passe (SASL). résolu dans la version beta2 28 juin 2022

Informations

Nom du projet: DNC (à partir du 22/09/2020).

Aliases: Depuis mai 2023, ce projet porte aussi des noms comme "DiscuBNC" ou "DiscuDNC".

Ancien nom du projet: Cloud BNC (du 28/07/2020 jusqu'au 21/09/2020).

Les utilisateurs visés: tous les utilisateurs enregistrés, sous mobiles et tablettes du tchat Discussionner.

Statut actuel: actif / version 1.0.0-beta2.

Première mise en ligne: 28/07/2020 à partir de 11h00.

Dernière mise à jour: 03/09/2023 à 9h00 (en cours).

Date des premiers tests en version Stable ou Release Candidate
  • A partir du 30/11/2021, DNC devient une version Release Candidate puisqu'elle est maintenant assez stable.
Le vhost de chaque utilisateur

Prenons l'exemple sur dis-24819484.ip465fd0.cloud-79b29a.irccity.com :

  • Le premier id "24819484" c'est la partie générée par UnrealIRCd comme s'il s’agissait d'un hostname normal.
  • le deuxième id "ip465fd0" c'est l'id unique d'une IP.
  • La troisième partie "79b29a" indique le nom du compte crypté
  • A la place de "24819484", un IRCop peut voir l'ip en plus de l'id. A noter que c'est l'IP de la toute toute première connexion et elle peut changé si l'utilisateur se reconnecte à DiscuBNC depuis un autre emplacement.

Déconnexion automatique du bouncer si pas reconnecté (ou si l'utilisateur ne clique pas sur "Se déconnecter"): 2 heures et l'utilisateur BNC quittera le tchat automatiquement.

Premier record de connectés simultanément (les premiers 10 jours de DNC): Le 08/08/2020 à 18h00 (90 connectés).

Fonctionne sous: Node.JS.

Signaler un problème ou demander une amélioration