Dépannage
customEndpoints rejeté
Cause : customEndpoints a été passé avec production, sandbox ou staging.
Solution : Passez customEndpoints uniquement avec EixamEnvironment.custom.
Incohérence initialSession.appId
Cause : L'appId du bootstrap et celui de la session signée ne correspondent pas.
Solution : Rendez les deux valeurs identiques.
Confusion dans le flux de signature
Cause : L'app mobile tente de stocker le secret ou de calculer userHash localement.
Solution : Gardez le secret uniquement sur le backend partenaire. Générez userHash côté serveur.
L'URI temps réel ne ressemble pas à WebSocket
Cause : Le champ public s'appelle websocketUrl mais le broker peut utiliser un autre schéma de transport.
Solution : C'est le comportement attendu. L'URI peut être ssl://, tls://, tcp://, ws:// ou wss://.
Le bootstrap n'a pas demandé de permissions
Comportement attendu. Les demandes de permissions sont des décisions explicites de l'app hôte.
Auth MQTT échoue après copie des en-têtes HTTP
| Transport | Auth |
|---|---|
| HTTP | Authorization: Bearer <userHash> |
| MQTT username | sdk:<appId>:<externalUserId> |
| MQTT password | <userHash> (sans préfixe Bearer) |