Aller au contenu
Console
Try one

    Points de terminaison du hub

    Utilisez les points de terminaison WSS, HTTPS et MQTT sur TLS du hub pour connecter un client SDK sans installer d'application de bureau.

    Un point de terminaison de hub est l’adresse réseau qu’un client utilise une fois que Thalovant a créé son identité.

    Les hubs publics n’exposent que les protocoles activés pour ce hub. WSS est le chemin public par défaut. HTTPS et MQTT sont optionnels.

    Une application de navigateur a aussi besoin d’une origine SDK approuvée avant que les appels venant d’un domaine qui vous appartient passent la vérification CORS de l’API.

    Type de point de terminaisonIdéal pour
    WSSLes clients en temps réel, les écouteurs d’événements, les flux vocaux et les agents.
    HTTPSLes sessions par interrogation des outils en ligne de commande, des tâches serveur, des vérifications d’état et des tests.
    MQTT sur TLSLe trafic d’appareils, de périphérie ou de réseaux contraints qui passe par un courtier.
    Même identitéTous les transports utilisent la même identité de client et la même politique d’accès.

    Python, Node.js, Go et Rust prennent en charge les trois transports hors du navigateur. Kotlin, Swift et .NET prennent en charge WSS; le C embarqué fournit le protocole et l’application s’occupe du transport. Consultez les versions prises en charge avant de choisir un client.

    Chaque transport est chiffré et authentifié avant que le trafic applicatif circule. Un socket ouvert, une réponse HTTP ou une connexion au courtier ne constituent pas à eux seuls une session. Conservez les clés enregistrées par le SDK d’un redémarrage à l’autre, comme l’explique Fichiers d’identité.

    Les SDK privilégient les points de terminaison explicites du plan de données quand l’identité les contient.

    {
    "data_plane_endpoints": {
    "wss": "wss://jokes.thalovant.io/public",
    "https": "https://jokes.thalovant.io/public",
    "mqtt": "mqtts://mqtt.thalovant.com:8883"
    },
    "protocols": {
    "wss": { "enabled": true },
    "http": { "enabled": true },
    "mqtt": { "enabled": true }
    }
    }

    Les identités plus anciennes ou minimales peuvent utiliser ces champs :

    ChampSignification
    default_masterHôte du hub ou adresse HTTPS complète.
    default_portPort à utiliser quand l’hôte n’en contient pas déjà un.
    default_pathPréfixe de chemin optionnel utilisé par les hubs publics routés.

    Choisissez d’abord WSS quand le client peut garder une connexion ouverte.

    Agent en direct

    Un agent garde une session active et réagit aux réponses, aux événements de politique ou aux mises à jour d’affichage.

    Flux vocal

    Un client vocal envoie des énoncés et écoute les réponses parlées.

    Abonné aux événements

    Un client écoute les événements du hub et les traduit dans le modèle d’état propre à son application.

    Choisissez HTTPS quand le client a besoin d’une réponse directe, sans socket en direct.

    En HTTPS, le SDK se connecte, s’authentifie, envoie des messages chiffrés et interroge le hub pour obtenir les réponses. Il garde pour ce travail une session de hub avec état; un ask représente plus d’une requête HTTP. Laissez le SDK conserver ses témoins de session, gérer l’interrogation et fermer la session une fois le travail terminé.

    Utilisez une identité distincte pour chaque client actif de façon indépendante. Si une autre application détient déjà la session HTTP de la même identité, un nouveau /connect peut réussir sans vous donner de session à vous. Arrêtez le client qui la détient ou provisionnez une identité distincte avant de réessayer.

    Tâche serveur

    Une tâche envoie une requête d’utilisateur, lit la réponse et se termine.

    Outil en ligne de commande

    Un outil de développement ou de soutien envoie des diagnostics et affiche le résultat.

    Client de test

    Un test vérifie l’authentification, le routage du point de terminaison et l’analyse des réponses.

    Une origine SDK approuvée permet le CORS d’API sans identifiants pour une seule origine de navigateur exacte. C’est distinct de la prise en charge des protocoles par le hub et de la façon dont le hub gère lui-même les origines et les témoins. Les sessions d’exécution HTTPS directes utilisent des témoins : l’approbation de l’origine auprès de l’API ne garantit donc pas à elle seule qu’une session de hub d’une origine à une autre fonctionnera.

    Servez-vous-en pour les applications de navigateur qui doivent appeler Thalovant à partir d’un domaine approuvé. Ne vous en servez pas pour faire passer dans le code du navigateur des fichiers d’identité, des mots de passe du courtier, des liens de configuration, des flux de rafraîchissement ou des secrets de paiement.

    Choisissez MQTT quand un courtier simplifie le déploiement par rapport au trafic direct vers le hub.

    MQTT utilise TLS et des identifiants propres à chaque client. Une identité de client doit contenir le bloc mqtt avant que les SDK puissent utiliser ce transport.

    {
    "mqtt": {
    "endpoint": "mqtts://mqtt.thalovant.com:8883",
    "username": "client-access-key",
    "password": "client-broker-password",
    "topic_prefix": "<namespace>/<hub-id>/<client-id>",
    "tls": true
    }
    }
    SymptômeÀ vérifier d’abord
    WSS fonctionne, mais HTTPS échoueConfirmez que HTTPS est activé pour le hub.
    HTTPS fonctionne, mais WSS échoueConfirmez que le hub public expose la route WebSocket et le certificat TLS.
    MQTT n’est pas pris en chargeUtilisez Python, Node.js côté serveur, Go ou Rust, puis confirmez que le hub et l’identité activent MQTT.
    MQTT échoue tout de suiteVérifiez le bloc MQTT de l’identité, les identifiants du courtier, TLS et les règles d’accès aux sujets.
    L’authentification échoue sur tous les transportsVérifiez le mot de passe et le point de terminaison de l’identité, restaurez l’état persistant du client s’il a été perdu et confirmez toute rotation prévue de la clé du serveur avant de changer les épinglages.
    HTTPS se connecte, mais l’authentification expireCherchez un autre processus qui utilise la même identité et vérifiez que le client a conservé ses témoins de session.
    Les requêtes aboutissent sur la mauvaise routeVérifiez d’abord data_plane_endpoints, puis default_path.