Synchronisations notifications dht point vert

Bonjour à tous :slight_smile:

Le point ou pastille verte est un sujet récurrent depuis l’origine.
Le point vert indique uniquement le fait que le compte jami est présent sur le DHT. si ma mémoire est bonne, à confirmer auprès de AmarOk ici ou auprès de SFL et la communeauté, sur le forum et le gitlab.

Très difficile, voir impossible de retrouver les questions et réponses de tous et chacun sur ce “point vert” dans l’historique de ce SWARM (Jami Entraide Utilisateurs hébergé par caféine) qui n’est pas structuré pour ça, car pas de “thread”, Fil d’Ariane qui relierait les conversations de chacun sur un même sujet, à la manière d’un mattermost.

Nos derniers échanges en date sur le forum à propos de ce sujet de fond, vital pour un outil de communication universel que se veut être jami :

Garantir la synchronisation et les notifications, en temps réel, entre appareils présents sur le DHT, quelque soit leurs Operating System, pour les appels et les messages textes.

ici

1 Like

Concrètement ça signifie quoi que le compte est présent sur le DHT ?

  1. Y a-t-il une notion de temps ? A partir du moment où il présent sur le DHT, qu’est-ce qui fait qu’il ne le serait plus ?
  2. 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 ?
2 Likes

Les réponses techniques précises sont certainement quelque part ici en Anglais, c’est trop technique pour nous pour vous répondre, @sblin pourrait vous répondre précisément ici, s’il en a le temps.
Un travail sur les statuts des messages est visiblement en cours https://forum.jami.net/t/mise-a-jour-dev-1/2392#statut-du-message-5

2 Likes

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

Merci beaucoup pour ces informations.

Effectivement, je comprends mieux pourquoi le fait d’avoir un contact connecté (vert) ne signifie pas qu’on puisse communiquer avec lui directement. J’imaginais que s’il était connecté ça voulait plus ou moins dire qu’on pouvait le “pinger”.

Concernant, la difficulté de savoir ce que signifie “connecte” et “non connecte” j’avais lu la FAQ du client XMPP Monal “What does “online” and “offline” mean in Monal” qui comparait leur système à WhatsApp. J’ai pas tout bien saisis mais ça prouve que ce n’est pas si trivial comme fonctionnalité…

Chouette, si vous avez prévu d’ajouter ce nouveau statut dans le futur !!! :slight_smile:

1 Like

Dans Monal c’est en effet pas mal similaire à ce qu’on a ici en effet. “Seems to be connected”/“a priori possiblement connecté” car de toute facon, techniquement ce sera pas possible de savoir si oui ou non l’application est joignable en général.

Dans leur XEP-0319: Last User Interaction in Presence ils proposent un timing de 5 min mais je doute que ce soit le cas en général (car ca nécessiterais un job redondant côté application pour se réveiller toutes les - de 5 minutes, et Android refuse ceci (et je parle meme pas d’Apple)).

2 Likes

Donc si je comprends bien, comme un compte peut être associé à plusieurs devices (ex. un téléphone Android + un PC portable), si le point vert apparaît en face d’un compte dans la liste des contacts dans Jami, quelle serait la signification?

  1. Tous les devices de ce compte sont présents sur le DHT.
  2. Au moins un device (le téléphone ou le PC) est présent sur le DHT.

Quand j’écris présent, c’est en tenant compte de la durée de vie. Mais on peut assumer que le téléphone Android soit toujours connecté, donc ce device serait toujours déclaré présent. En revanche, Android va mettre Jami en sommeil profond, et donc ce device ne sera pas réellement joignable.
Pour le portable PC, celui-ci ne s’enregistrera sur le DHT que lorsqu’on le démarre, disons 1h par jour.
Dans cette situation, le compte apparaîtrait avec un point vert en permanence, mais ne serait joignable qu’une heure par jour. Donc la présence du point vert en face d’un contact ne garantit pas du tout que celui-ci soit joignable.

Quand on effectue un appel Jami vers un compte qui a associé plusieurs devices, quel device est sélectionné?

  1. Tous?
  2. Au hasard parmi ceux enregistrés sur le DHT?
  3. Celui qui est enregistré sur le DHT depuis le plus longtemps?
  4. Le choix du device suit un autre algorithme…

Jami est très flexible et puissant, mais peut-être faut-il expliquer/vulgariser son fonctionnement afin que les utilisateurs puissent le dompter car l’interface utilisateur (i.e. point vert) traduit mal ce fonctionnement.

1 Like

Je suis en partie d’accord avec cette remarque, d’un point de vu utilisateur difficilement compréhensible, et acceptable que point vert, ne soit en aucun cas une garantie :
1 que le pair est joignable en audio ou vidéo à cet instant
2 qu’il reçoive dans l’instant une notification qu’un message texte lui est délivré

Comme cela semble être le cas pour les autres applications (signal, watTruc , etc…), et c’est là un point très important pour l’acceptation de jami et une plus large diffusion grand public.

Par contre si l’utilisateur doit dompter jami ou que nous soyons dans l’obligation d’expliquer, vulgariser et justifier pour convaincre notre entourage d’utiliser jami, j’ai bien peur que jami ne trouve qu’un public très restreint d’aventuriers et de personnes conscientes des enjeux éthiques que défend jami…

si le point vert apparaît en face d’un compte dans la liste des contacts dans Jami, quelle serait la signification?

Au moins un

Quand on effectue un appel Jami vers un compte qui a associé plusieurs devices, quel device est sélectionné?

Tous ceux qui ont leur présence sur la DHT

Comme cela semble être le cas pour les autres applications (signal, watTruc , etc…), et c’est là un point très important pour l’acceptation de jami et une plus large diffusion grand public.

Signal n’a pas de point vert
Whatsapp à la même signification et un délai de 2h (cas simple, juste désactiver son téléphone,quand l’application est en background)
Techniquement ce sera toujours un fonctionnement similaire et non garanti (car c’est pas possible de voir si un tel est joignable si l’application fonctionne par push).

Le reste est expliqué dans mon message Synchronisations notifications dht point vert - #4 by sblin et Synchronisations notifications dht point vert - #6 by sblin

2 Likes

Quelle est la logique désirée par les développeurs de Jami à propos de l’affichage du point vert?

Je crois que le modèle mental qu’ont les utilisateurs est “s’il y a un point vert, alors mon correspondant est en ligne”, ou l’a été il y a quelques minutes. Ce que j’ai montré avec le scénario que j’ai décrit Synchronisations notifications dht point vert - #7 by pmetras, c’est que ce schéma mental utilisateur n’est pas reflété par le fonctionnement de l’application et donc les utilisateurs ne comprennent pas ce qui se passe (i.e. Jami m’indique que mon correspondant est en ligne pourtant les messages ne partent pas!).

Peut-être qu’en connaissant la réponse à ma première question (i.e. que veut-on signifier avec le point vert?), on pourrait améliorer l’interface utilisateur de Jami pour que ce point vert provoque moins de frustrations.

Une question secondaire:

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).

Pourquoi les durées de time-out sont-elles différentes entre une connexion directe et une connexion via un proxy? Si nous avions une seule durée, le message aux utilisateurs pourrait être simplement que “le contact a été vu en ligne il y a moins de 10 minutes”. Il me semble qu’il serait plus facile à comprendre. Y-a-t-il une raison technique qui justifie d’avoir une durée de vie aussi longue pour le proxy?

Et un commentaire bonus pour la fin: d’autre applications, comme MS Teams, utilisent plusieurs états: disponible; occupé; ne pas déranger; etc. Améliorer la signification du point vert de Jami aidera à son acceptation.

2 Likes

Mattermost [quote=“pmetras, post:10, topic:2386”]
utilisent plusieurs états: disponible; occupé; ne pas déranger; etc. Améliorer la signification du point vert de Jami aidera à son acceptation.
[/quote]
Oui, clarifier et préciser les messages de l’interface jami à l’utilisateur, à propos du statut de ses contacts serait un point d’amélioration.

1 Like

Bonjour @verojean @pmetras

Tout à fait ! On a passé notre dernière semaine à travailler sur le status des messages (envoyé et lu) et le point vert, qui est censé indiquer que l’utilisateur est connecté (comme je l’ai mentionné dans la Dev Update #2 publié hier). Aux prochaines versions publiées, vous devriez déjà voir une nette amélioration !

Loïc.

1 Like

MERCI pour le travail bienfaisant de toute l’équipe :slight_smile:
Jean-Luc

1 Like