DNC

De WikiIRC

Cloud BNC (ou Cloud Bouncer) est un nom de projet qui consiste à garder les utilisateurs mobiles en ligne même déconnecté (tchat mis en arrière-plan, ou écran éteint...).


Informations

Noms du projet: Serveur Cloud BNC (Cloud en interne dans l'application du tchat discussionner)

Utilisation: uniquement sur l'applet officielle Discussionner.

Les utilisateurs visés: tous les mobiles/tablettes (seulement les inscrits).

Statut actuel: actif / version 1.0.0-beta1

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

Dernière mise à jour: 19/08/2020 à 12h50

Date des premiers tests en version alpha
  • 28/07/2020 de 11h00 à 21h00 (ou 15h53 pour cause de crash) (d82bb97725)
  • 28/07/2020 de 22h45 jusqu'à 00h22 (heure du crash) (14e5b4a)
  • 29/07/2020 de 1h17 jusqu'au 30/07/2020 à 5h22 (heure du crash)
  • 30/07/2020 de 9h00 jusqu'à 14h35 (pour mise en place de la connexion sécurisée SSL/TLS)
  • 30/07/2020 redémarrage en ssl/tls de 14h35 jusqu'au 31/07 16h45 (pour problème SSL/TLS)
  • 31/07/2020 redémarrage en ssl/tls de 16h45 jusqu'au 01/08 (pour changement du système d'IPs)
  • 01/08/2020 jusqu'au 02/08/2020 10h00 (pour amélioration du système d'ip)
  • 02/08/2020 à 10h35 jusqu'à 21h55 (pour passer le mot de passe de 8 [défaut] à 6 caractères minimum, pour cause qu'il y avait de nombreux problèmes de connexions pour ceux qui ont un mot de passe de 6 ou 7 caractères.)
  • 02/08/2020 redémarrage à 21h55
  • 03/08/2020 redémarrage à 8h00
  • 05/08/2020 redémarrage à 12h35 avec une limitation sur les 1500 dernières lignes (privmsg, notice, raws...).
  • 19/08/2020 à 12:50 : fin de la version alpha.


Date des premiers tests en version bêta
  • 19/08/2020 démarrage à 12h50 en version 1.0.0-beta1
Date des premiers tests en version stable
  • à définir dés qu'il n'y aura plus d'erreurs majeures.
Le vhost de chaque utilisateur
  • galaxy-90.54.xx.xx.cloud-0046xxxx.irccity.com
    "0046xxxx" indique le login crypté
    "90.54.xx.xx" indique la toute première IP de la toute première connexion
IP officielle de chaque utilisateur
  • 90.54.xx.xx (sa propre IP de la toute première connexion)

Ident officiel de chaque utilisateur: numéro du compte membre

Déconnexion automatique du bouncer si pas reconnecté (ou si l'utilisateur ne clique pas sur "Déconnexion"): atteindre les 3h et l'utilisateur quittera le tchat automatiquement (il devra redémarrer le tchat s'il veut revenir).

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

Dernier record de connectés simultanément: Le 21/08/2020 à 01:30 (113 connectés).

Idée débutée (en étant intéressé): en septembre 2019.

Début des configurations et tests: en décembre 2019.

Fonctionne sous: Node.JS

Signaler un problème ou demander une amélioration


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 qu'on reclique sur 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 l'application Snapchat :

  1. On démarre l'application, on ouvre une conversation, et on discute avec la 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 (l'utilisateur n'est plus connecté).
  3. Ensuite nous revenons sur notre application et nous voyons une notification d'une personne venant de Snapchat, on clique sur la notificaiton environ 2 fois pour ouvrir Snapchat.
    • 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 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 exprès pour que le socket arrête de consommer la batterie du téléphone mobile à cause du socket inactif.

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

  1. On démarre l'application (sur Chrome par exemple), on ouvre une conversation, et on discute avec la 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
    • 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 du nouveau système "Cloud BNC" de Discussionner

L'applet Discussionner tente de le faire fonctionner comme ceci :

  1. On démarre l'application (sur Chrome par exemple), on ouvre une conversation, et on discute avec la 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é au bnc) mais il est toujours sur IRC
  3. Ensuite nous revenons sur notre application.
    • 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 non-résolus au 19 août 2020 dans la version beta1

Les trois plus grands problèmes de Cloud BNC (au 19 août) sont les suivants:

  1. Le cas N°3 ci-dessus n'est pas encore au point, il faut souvent l'améliorer, comme par exemple: la récupération des messages à 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.
  2. Ne prévient pas la déconnexion dans le cas où le serveur Cloud BNC est en maintenance, quand cela arrive il suffit de relancer le tchat.
  3. Le serveur Cloud BNC crash parfois en cas d'erreur : il faut souvent corriger les rares erreurs (ce sont des erreurs de type "undefined"), cela déconnecte tous les chatteurs du BNC