Synchronisations notifications dht point vert

Ca signifie que le device a envoyé une valeur sur la DHT. Sans proxy, une valeur a une durée de vie de 10minutes, avec un proxy, ca monte à 24h (car c’est le proxy qui rafraichit la présence, pas le device lui-même étant généralement en background).

S’il est présent sur le DHT, ça veut dire que si on lui envoie un message alors il va forcément le recevoir ? Si non, pourquoi ?

Non. Pour envoyer un message il faut que les 2 appareils crééent un lien direct. La présence va juste dire que ton appareil va pouvoir chiffrer une valeur vers l’autre appareil mais c’est tout. L’autre appareil peut-être bloqué, avoir bloqué ton contact, refuser la connexion, être hors ligne, ne pas recevoir la push, le TLS peut fail, la création du lien peut échouer, etc.

Mais c’est pas nouveau. Toute application mobile ou on peut voir la présence a pas mal les mêmes problématiques. Exemple Whatsapp quand l’application se fait tuer par l’OS, le point vert peut rester 2h alors que l’application ne tourne pas. Un appareil qui fonctionne avec des push est techniquement pas connecté à ton application. Peut importe ton modèle, le téléphone derrière peut avoir coupé internet tu ne le sauras pas. La présence (que ce soit whatsapp, discord, mattermost, jami) est juste le fait que ton application a entendu parler de ton appareil il y a pas si longtemps.
En simplifiant le probleme, même si tu met un point vert quand tu es sur que le téléphone est connecté (donc généralement l’application en foreground avec une connexion directe), ca peut s’avérer compliqué de prouver ou non que le téléphone est présent (When TCP sockets refuse to die fait un excellent article sur une probleme similaire).

Dans un futur plus ou moins proche, par contre on souhaitait ajouter un status de savoir si une connexion directe était disponible (information deja disponible dans Parametres->Troubleshoot)

3 Likes