Étape 3 : créer une salle de chat
Pour qu'un participant au chat puisse se connecter à une salle et commencer à envoyer et à recevoir des messages, un jeton de chat doit être créé. Les jetons de chat sont utilisés pour authentifier et autoriser les clients de chat.
Ce schéma illustre le flux de travail pour créer un jeton de chat IVS :
Comme indiqué ci-dessus, une application client demande un jeton à votre application côté serveur, et l'application côté serveur appelle CreateChatToken à l'aide d'un kit SDK AWS ou de requêtes signées SigV4. Étant donné que les informations d'identification AWS sont utilisées pour appeler l'API, le jeton doit être généré dans une application côté serveur sécurisée, et non dans l'application côté client.
Une application de serveur backend qui illustre la génération de jetons est disponible sur le backend de démonstration Chat Amazon IVS
Durée de la session fait référence à la durée pendant laquelle une session établie peut rester active avant qu'elle ne soit automatiquement fermée. En d'autres termes, la durée de la session correspond à la durée pendant laquelle le client peut rester connecté à la salle de chat avant qu'un nouveau jeton ne doive être généré et qu'une nouvelle connexion ne doive être établie. Vous pouvez en option, spécifier la durée de la session lors de la création de jetons.
Chaque jeton ne peut être utilisé qu'une seule fois pour établir une connexion pour un utilisateur final. Si une connexion est fermée, un nouveau jeton doit être créé avant qu'une connexion puisse être rétablie. Le jeton lui-même est valide jusqu'à l'horodatage d'expiration du jeton inclus dans la réponse.
Lorsqu'un utilisateur final souhaite se connecter à une salle de chat, le client doit demander un jeton à l'application serveur. L'application serveur crée un jeton et le transmet au client. Des jetons doivent être créés pour les utilisateurs finaux à la demande.
Pour créer un jeton d'authentification de chat, suivez les instructions ci-dessous. Lorsque vous créez un jeton de chat, utilisez les champs de demande pour transmettre des données concernant l'utilisateur final du chat et ses capacités de messagerie. Pour plus de détails, consultez la section CreateChatToken dans la Référence de l'API IVS Chat.
Instructions du kit SDK AWS
La création d'une salle de chat avec le kit SDK AWS nécessite que vous téléchargiez et configuriez d'abord le kit SDK sur votre application. Vous trouverez ci-dessous les instructions concernant le SDK AWS utilisant JavaScript.
Important : ce code doit être exécuté côté serveur et sa sortie doit être transmise au client.
Prérequis : pour pouvoir utiliser l'exemple de code ci-dessous, vous devez charger le kit SDK AWS JavaScript dans votre application. Pour plus d'informations, consultez la section Mise en route avec le kit SDK AWS pour JavaScript.
async function createChatToken(params) { const ivs = new AWS.Ivschat(); const result = await ivs.createChatToken(params).promise(); console.log("New token created", result.token); } /* Create a token with provided inputs. Values for user ID and display name are from your application and refer to the user connected to this chat session. */ const params = { "attributes": { "displayName": "DemoUser", }", "capabilities": ["SEND_MESSAGE"], "roomIdentifier": "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6", "userId": 11231234 }; createChatToken(params);
Instructions de la CLI
La création d'un jeton de chat avec l'AWS CLI est une option avancée et nécessite que vous téléchargiez et configuriez d'abord le CLI sur votre machine. Pour plus de détails, consultez le Guide de l’utilisateur de l’Interface de ligne de commande AWS. Remarque : la génération de jetons avec l'AWS CLI est utile à des fins de test, mais pour une utilisation en production, nous vous recommandons de générer des jetons côté serveur avec le kit SDK AWS (voir les instructions ci-dessus).
-
Exécutez la commande
create-chat-token
avec l'identifiant de la salle et l'ID utilisateur du client. Incluez l'une des fonctions suivantes :"SEND_MESSAGE"
,"DELETE_MESSAGE"
,"DISCONNECT_USER"
. (Vous pouvez également inclure la durée de la session (en minutes) et/ou les attributs personnalisés (métadonnées) de cette session de chat. Ces champs ne sont pas affichés ci-dessous.)aws ivschat create-chat-token --room-identifier "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6" --user-id "11231234" --capabilities "SEND_MESSAGE"
-
Ceci renvoie un jeton client :
{ "token": "abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234.abcd12345EFGHI67890_jklmno123PQRS567890uvwxyz1234abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234abcde", "sessionExpirationTime": "2022-03-16T04:44:09+00:00", "tokenExpirationTime": "2022-03-16T03:45:09+00:00" }
-
Enregistrez ce jeton. Vous en aurez besoin pour vous connecter à la salle de chat et envoyer ou recevoir des messages. Vous devrez générer un autre jeton de chat avant la fin de votre session (comme indiqué par
sessionExpirationTime
).