Korat
Fonctionnalité

Discussions individuelles et appels dans le navigateur

La messagerie de Korat est volontairement étroite : deux personnes, un fil. Tout le reste de l’app — une table où l’on vous invite, une publication partagée, une correspondance venue des rencontres — arrive dans ce fil sous forme de carte utilisable.

La messagerie est la pièce sur laquelle tout le reste s’appuie. Une invitation à une table de restaurant est une carte de conversation. Une publication partagée arrive comme une carte qui ouvre la publication. Une correspondance devient une vraie discussion dès que les deux personnes se sont aimées. Comme il n’existe qu’un seul endroit où un message peut arriver, il n’y a qu’un seul endroit à regarder.

Deux personnes, un fil

La messagerie directe de Korat est strictement à deux : un fil contient exactement deux personnes, et on ne peut pas en ajouter une troisième. La conversation à plusieurs se passe à deux autres endroits, dont aucun n’est cette messagerie. Les Groupes la portent en publications : une publication porte un identifiant de groupe et hérite des commentaires, des mentions et des notifications du fil ordinaire — filé, cherchable, durable. Et un groupe ou un club sportif peut avoir des salons : des canaux texte à la Discord, listés dans le groupe, bâtis sur leurs propres tables avec leurs propres droits, et qui font nettement moins qu’un fil direct. Les limites sont énoncées en entier plus bas, parce qu’un salon qui ressemble à une messagerie sans en être une est pire que pas de salon du tout.

Ce qu’un fil à deux gagne en échange, c’est de la profondeur : répondre à un message précis en citation, modifier après envoi, annuler l’envoi, épingler l’essentiel en haut du fil, réagir avec six émojis rapides ou en ouvrir trente. L’indicateur de saisie et l’état de lecture fonctionnent comme prévu.

Ce qu’on peut mettre dans un message

Au-delà du texte : images, fichiers de tout type, et messages vocaux enregistrés par le MediaRecorder de l’appareil en AAC dans un conteneur M4A, avec lecture dans la bulle. Vous pouvez envoyer votre position. S’y ajoutent les cartes système que le reste de l’app produit : une publication partagée, une invitation à une table, la trace d’un appel.

Un nouveau message déclenche une notification push sur l’appareil de l’autre personne, aussi bien en tête-à-tête que dans la boîte du commerce. Elle n’atteint que les appareils non révoqués, et ouvrir la conversation efface sa notification. Une messagerie qui produit des messages dont personne n’est averti n’est pas silencieuse : elle est cassée. La limite à dire à côté : l’app web n’a pas de push. Depuis un navigateur, vous voyez le message en ouvrant l’onglet, pas quand il arrive.

Cette dernière compte plus qu’il n’y paraît. Un appel sonné et manqué est autrement invisible. L’inscrire dans le fil fait de l’historique d’une relation une seule liste que l’on fait défiler, au lieu d’une conversation d’un côté et d’un journal d’appels de l’autre.

Deux objets arrivent aussi dans ce fil depuis ailleurs dans Korat : une carte de visite numérique se transmet sous forme de lien que le destinataire ouvre dans n’importe quel navigateur, et chaque club sportif est livré avec son propre salon texte, distinct des fils à deux décrits ici — avec les limites de l’encadré ci-dessous, pas avec ce que fait un fil direct.

Des appels que les deux personnes ont autorisés

Les appels audio et vidéo passent par du vrai WebRTC : micro coupé, caméra coupée, changement de caméra, écran d’appel entrant plein écran et notification en arrière-plan. Ce qui est inhabituel, c’est la barrière devant : le consentement d’appel est bilatéral et par conversation. Les boutons n’apparaissent qu’une fois le verrou ouvert des deux côtés.

C’est une réponse délibérée au fait qu’un téléphone qui sonne est la chose la plus intrusive qu’une app puisse faire. Un inconnu croisé dans les rencontres ou sur la page d’un commerce peut vous écrire un message que vous ignorez ; il ne peut pas faire sonner votre téléphone à deux heures du matin sans accord explicite dans cette conversation précise.

Deux limites énoncées franchement. La messagerie directe est strictement à deux : un fil ne se transforme pas en groupe, et il n’existe aucune version à plusieurs de la messagerie décrite sur cette page. Ce qui existe, ce sont les salons dont disposent un groupe ou un club, et c’est un système plus maigre, sur d’autres tables : du texte brut que l’on envoie et que l’on supprime, sans modification, sans réponse à un message précis, sans réactions, sans photos, fichiers ni messages vocaux, et sans appels. Rien sur cette page ne décrit un salon.

Les appels ne sont pas chiffrés de bout en bout, et il n’y a pas de serveur TURN. Le flux est direct entre les deux appareils quand leurs réseaux peuvent s’atteindre ; sans relais, certaines combinaisons d’opérateur mobile et de NAT restrictif échouent tout simplement à établir la connexion. C’est une brique d’infrastructure que nous n’avons pas montée, pas un bug de l’app.

La présence est un battement de cœur, pas une socket

Le point vert veut dire une seule chose : le client de cette personne a écrit un horodatage last_seen dans les quatre-vingt-dix dernières secondes. C’est un sondage périodique, pas une connexion permanente : c’est économe en batterie, et c’est grossier. Quelqu’un qui a fermé l’app il y a quarante secondes semble encore en ligne.

Nous parlons de battement de cœur plutôt que de « en ligne » parce que la présence est la fonction que l’on lit le plus volontiers comme une preuve — preuve qu’un message a été vu, preuve qu’on vous ignore. Une fenêtre de quatre-vingt-dix secondes ne peut pas porter ce poids.

Retrouver la bonne conversation

Deux fonctions font l’essentiel du travail pour garder une longue liste de conversations utilisable. La première est l’alias de conversation : renommez un fil comme vous appelez réellement cette personne, et ce nom n’est visible que par vous. Il ne fuit jamais vers le fil, les groupes, les commentaires ou le profil. La personne que vous avez enregistrée sous « propriétaire » voit partout son propre nom d’affichage, exactement tel qu’elle l’a écrit. Ailleurs dans Korat, les noms sont résolus en direct depuis le profil, précisément pour qu’un changement de nom à un endroit ne se désynchronise pas d’un autre.

La seconde, ce sont les étiquettes : des tags de couleur que vous créez vous-même, dont vous décidez du contenu, et que vous pouvez modifier et supprimer. Elles servent aussi de filtres sur la liste des conversations, à côté des filtres intégrés — non lus, comptes officiels et fils venus des rencontres. La recherche porte sur le nom du fil et sur le dernier message, donc une phrase à moitié retenue suffit à retrouver une conversation. On peut épingler un fil en haut, le marquer comme lu ou le supprimer.

Ce que le serveur voit, et ce que vous pouvez faire de quelqu’un

Les messages sont stockés côté serveur en clair, protégés par des politiques de sécurité au niveau des lignes qui réservent une conversation à ses deux participants. Rien n’est chiffré de bout en bout, ni les discussions, ni les appels, ni les fichiers, et il n’y a pas de chiffrement applicatif au repos. Si c’est une exigence pour ce dont vous parlez, prenez un outil fait pour cela.

Côté humain : vous pouvez bloquer depuis le fil ou depuis le profil, ce qui masque discussions et publications et retire la personne de votre jeu de rencontres en même temps, et vous pouvez signaler un compte. Le blocage est une action unique avec des effets partout.

Questions fréquentes

Korat propose-t-il des discussions de groupe ?

Pas dans la messagerie : un fil direct contient deux personnes et on ne peut pas en ajouter une troisième. On parle à plusieurs dans les Groupes — en publications, qui portent commentaires, mentions et notifications, et dans les salons du groupe, des canaux texte à la Discord listés à l’intérieur, dont disposent aussi les clubs sportifs.

Ces salons sont volontairement maigres : du texte brut que l’on envoie et que l’on supprime, sans modification, sans réponse à un message précis, sans réactions, sans photos, fichiers ni messages vocaux, et sans appels.

Les messages sont-ils chiffrés de bout en bout ?

Non. Ni les messages, ni les fichiers, ni les appels. Les lignes de conversation sont stockées côté serveur et protégées par des politiques qui limitent chaque échange à ses deux participants.

Il n’y a pas de chiffrement applicatif au repos au-delà de ce que fournit la base de données managée.

Pourquoi le bouton d’appel n’apparaît-il pas ?

Le consentement d’appel est bilatéral et propre à chaque conversation. Les boutons audio et vidéo n’apparaissent qu’une fois le verrou ouvert par les deux personnes dans ce fil précis.

L’ouvrir pour quelqu’un ne l’ouvre pour personne d’autre.

Mon appel vidéo ne s’établit pas. Pourquoi ?

Il n’y a pas encore de serveur TURN : les appels dépendent de la capacité des deux appareils à s’atteindre directement. Certaines combinaisons de réseau mobile et de NAT restrictif ne le permettent pas.

Deux appareils sur le même Wi-Fi, ou sur des réseaux autorisant les connexions directes, fonctionnent en général.

Si je renomme une conversation, l’autre personne le voit-elle ?

Non. Un alias est privé. Le nom d’affichage réel de l’autre personne continue d’apparaître partout, y compris dans le fil, les commentaires et les groupes.

Les noms sont résolus en direct depuis le profil, donc un alias ne peut pas fuir dans le contenu.

Ouvrir une conversation

Korat est gratuit, tourne sur Android et dans le navigateur, et la messagerie y est identique.