Concetti sulle chat

Servizi di comunicazione di Azure Chat consente di aggiungere comunicazioni di testo in tempo reale alle applicazioni multipiattaforma. Questa pagina riepiloga i principali concetti e funzionalità della libreria Chat. Vedere Panoramica di Communication Services Chat Software Development Kit (SDK) per elenchi di SDK, linguaggi, piattaforme e supporto dettagliato delle funzionalità.

Le API chat forniscono un servizio di scalabilità automatica per la comunicazione di testo e dati archiviati in modo permanente. Altre funzionalità chiave includono:

  • Identità e indirizzamento personalizzati: Servizi di comunicazione di Azure fornisce identità generiche per indirizzare gli endpoint di comunicazione. I client usano queste identità per eseguire l'autenticazione al servizio di Azure e comunicare tra loro nel chat threads controllo.
  • Crittografia : gli SDK di chat crittografano il traffico e impediscono la manomissione in transito.
  • Riunioni di Microsoft Teams: gli SDK di chat possono partecipare alle riunioni di Teams e comunicare con i messaggi di chat di Teams.
  • Notifiche in tempo reale: gli SDK di Chat usano una connettività persistente efficiente (WebSocket) per ricevere notifiche in tempo reale, ad esempio quando un utente remoto sta digitando. Quando le app sono in esecuzione in background, la funzionalità predefinita è disponibile per attivare notifiche popup ("avvisi popup") per informare gli utenti finali di nuovi thread e messaggi.
  • Estendibilità bot: è facile aggiungere bot di Azure al servizio Chat con l'integrazione di Azure Bot.

Panoramica della chat

Le conversazioni di chat avvengono all'interno di thread di chat. I thread di chat hanno le proprietà seguenti:

  • Un'identità del thread di chat è il relativo ChatThreadId.
  • I thread di chat hanno tra zero e 250 utenti come partecipanti che possono inviare messaggi.
  • Un utente può far parte di un numero illimitato di thread di chat.
  • Solo i partecipanti del thread possono inviare o ricevere messaggi, aggiungere partecipanti o rimuovere partecipanti.
  • Gli utenti vengono aggiunti come partecipante a qualsiasi thread di chat che creano.

Accesso utente

Servizi di comunicazione di Azure supporta tre livelli di controllo di accesso utente, usando i token di chat. Per informazioni dettagliate, vedere Identità e token . I partecipanti non hanno accesso in scrittura ai messaggi inviati da altri partecipanti, il che significa che solo il mittente del messaggio può aggiornare o eliminare i messaggi inviati. Se un altro partecipante tenta di farlo, viene visualizzato un errore.

Dati chat

Servizi di comunicazione di Azure archivia i messaggi di chat a tempo indeterminato fino a quando non vengono eliminati dal cliente. I partecipanti al thread di chat possono usare ListMessages per visualizzare la cronologia dei messaggi per un thread specifico. Gli utenti rimossi da un thread di chat possono visualizzare la cronologia dei messaggi precedente, ma non possono inviare o ricevere nuovi messaggi. I messaggi eliminati accidentalmente non sono recuperabili dal sistema. Per altre informazioni sui dati archiviati in Servizi di comunicazione di Azure servizio chat, vedere la pagina relativa alla residenza dei dati e alla privacy.

Nel 2024 verranno introdotte nuove funzionalità in cui i clienti devono scegliere tra conservazione dei messaggi illimitata o eliminazione automatica dopo 90 giorni. I messaggi esistenti rimangono invariati.

Per i clienti che usano appuntamenti virtuali, fare riferimento alla privacy degli utenti di Interoperabilità di Teams per l'archiviazione dei messaggi di chat nelle riunioni di Teams.

Limiti del servizio

  • Il numero massimo di partecipanti consentiti in un thread di chat è 250.
  • La dimensione massima consentita per i messaggi è di circa 28 KB.
  • Per i thread di chat con più di 20 partecipanti, le ricevute di lettura e le funzionalità dell'indicatore di digitazione non sono supportate.
  • Per gli scenari di interoperabilità di Teams, è il numero di utenti Servizi di comunicazione di Azure, non utenti di Teams, che devono essere inferiori a 20 per poter supportare la funzionalità dell'indicatore di digitazione.
  • Per gli scenari di interoperabilità di Teams, l'evento indicatore di digitazione potrebbe contenere un nome visualizzato vuoto quando inviato dall'utente di Teams.
  • Per gli scenari di interoperabilità di Teams, le ricevute di lettura non sono supportate per gli utenti di Teams.

Architettura della chat

Esistono due parti di base per l'architettura della chat: 1) Servizio attendibile e 2) Applicazione client.

Diagram showing Communication Services' chat architecture.

  • Servizio attendibile: per gestire correttamente una sessione di chat, è necessario un servizio che consente di connettersi a Servizi di comunicazione usando la risorsa stringa di connessione. Questo servizio è responsabile della creazione di thread di chat, dell'aggiunta e della rimozione dei partecipanti e dell'emissione di token di accesso agli utenti. Per altre informazioni sui token di accesso, vedere l'argomento di avvio rapido relativo ai token di accesso.
  • App client: l'applicazione client si connette al servizio attendibile e riceve i token di accesso usati dagli utenti per connettersi direttamente a Servizi di comunicazione. Dopo aver creato il thread di chat e aggiunto gli utenti come partecipanti, possono usare l'applicazione client per connettersi al thread di chat e inviare messaggi. Le notifiche in tempo reale nell'applicazione client possono essere usate per sottoscrivere gli aggiornamenti di messaggi e thread da altri partecipanti.

Creare esperienze di chat intelligenti basate sull'intelligenza artificiale

È possibile usare i servizi di intelligenza artificiale di Azure con il servizio Chat per creare casi d'uso come:

  • Aiutare un agente di supporto a classificare in ordine di priorità i ticket rilevando un sentiment negativo di un messaggio in arrivo da un cliente.
  • Generare un riepilogo alla fine della conversazione da inviare al cliente tramite posta elettronica con i passaggi successivi o eseguire il completamento in un secondo momento.
  • Aggiungere un'istanza di Power Virtual Agent (PVA) in un canale chat Servizi di comunicazione di Azure con un bot di Azure Bot e un bot di inoltro.
  • Configurare un bot per l'esecuzione in uno o più canali social insieme al canale Chat.

Diagram showing Azure Communication Services can be paired with Azure AI services.

Tipi di messaggio

Nell'ambito della cronologia dei messaggi, Chat condivide messaggi generati dall'utente e messaggi generati dal sistema.

I messaggi di sistema vengono generati quando

  • Un thread di chat viene aggiornato
  • un partecipante è stato aggiunto o rimosso
  • l'argomento del thread di chat è stato aggiornato.

Quando si chiama List Messages o Get Messages su un thread di chat, il risultato contiene entrambi i tipi di messaggi in ordine cronologico. Per i messaggi generati dall'utente, il tipo di messaggio può essere impostato in SendMessageOptions quando si invia un messaggio al thread di chat. Se non viene specificato alcun valore, Per impostazione predefinita, Servizi di comunicazione viene digitato text . L'impostazione di questo valore è importante quando si invia codice HTML. Quando html viene specificato, Servizi di comunicazione sanifica il contenuto per assicurarsi che venga eseguito in modo sicuro nei dispositivi client.

  • text: un messaggio di testo normale composto e inviato da un utente come parte di un thread di chat.
  • html: messaggio formattato con html, composto e inviato da un utente come parte del thread di chat.

Tipi di messaggi di sistema:

  • participantAdded: messaggio di sistema che indica che uno o più partecipanti sono stati aggiunti al thread di chat.
  • participantRemoved: messaggio di sistema che indica che un partecipante è stato rimosso dal thread di chat.
  • topicUpdated: messaggio di sistema che indica che l'argomento del thread è stato aggiornato.

Notifiche in tempo reale

JavaScript Chat SDK supporta le notifiche in tempo reale. Questa funzionalità consente ai client di ascoltare Servizi di comunicazione per gli aggiornamenti in tempo reale e i messaggi in arrivo a un thread di chat senza dover eseguire il polling delle API.

L'app client può sottoscrivere gli eventi seguenti:

  • chatMessageReceived : quando un nuovo messaggio viene inviato a un thread di chat da un partecipante.
  • chatMessageEdited - quando un messaggio viene modificato in un thread di chat.
  • chatMessageDeleted - quando un messaggio viene eliminato in un thread di chat.
  • typingIndicatorReceived - quando un altro partecipante invia un indicatore di digitazione al thread di chat.
  • readReceiptReceived - quando un altro partecipante invia una ricevuta di lettura per un messaggio letto.
  • chatThreadCreated : quando un utente di Servizi di comunicazione crea un thread di chat.
  • chatThreadDeleted - quando un utente di Servizi di comunicazione elimina un thread di chat.
  • chatThreadPropertiesUpdated - quando le proprietà del thread di chat vengono aggiornate; attualmente è supportato solo l'aggiornamento dell'argomento per il thread.
  • participantsAdded - quando un utente viene aggiunto come partecipante del thread di chat.
  • participantsRemoved - quando un partecipante esistente viene rimosso dal thread di chat.
  • realTimeNotificationConnected - quando la notifica in tempo reale è connessa.
  • realTimeNotificationDisconnected -quando la notifica in tempo reale viene disconnessa.

Nota

Le notifiche in tempo reale non devono essere usate con le applicazioni server.

Eventi del server

Questa funzionalità consente alle applicazioni server di restare in ascolto di eventi, ad esempio quando viene inviato un messaggio e quando un partecipante partecipa o esce dalla chat. Le applicazioni server possono reagire a questi eventi, aggiungendo/rimuovendo partecipanti alla chat, archiviando chat, eseguendo analisi e molti altri scenari per l'orchestrazione. Per informazioni sui tipi di eventi di chat che possono essere usati dagli sviluppatori, vedere Eventi del server.

Notifiche push

Gli SDK di Chat per Android e iOS supportano le notifiche push. Per inviare notifiche push per i messaggi mancanti dagli utenti mentre erano lontani, connettere una risorsa hub di notifica con la risorsa servizi di comunicazione per inviare notifiche push. In questo modo gli utenti dell'applicazione informeranno le chat e i messaggi in arrivo quando l'app per dispositivi mobili non è in esecuzione in primo piano.

IOS e Android SDK supportano l'evento seguente:

  • chatMessageReceived : quando un nuovo messaggio viene inviato a un thread di chat da un partecipante.

Android SDK supporta eventi aggiuntivi:

  • chatMessageEdited - quando un messaggio viene modificato in un thread di chat.
  • chatMessageDeleted - quando un messaggio viene eliminato in un thread di chat.
  • chatThreadCreated : quando un utente di Servizi di comunicazione crea un thread di chat.
  • chatThreadDeleted - quando un utente di Servizi di comunicazione elimina un thread di chat.
  • chatThreadPropertiesUpdated - quando le proprietà del thread di chat vengono aggiornate; attualmente è supportato solo l'aggiornamento dell'argomento per il thread.
  • participantsAdded - quando un utente viene aggiunto come partecipante del thread di chat.
  • participantsRemoved - quando un partecipante esistente viene rimosso dal thread di chat.

Per altre informazioni, vedere Notifiche push.

Nota

Attualmente l'invio di notifiche push di chat con Hub di notifica è disponibile a livello generale in Android versione 1.1.0 e in IOS versione 1.3.0.

Passaggi successivi

I documenti seguenti possono essere interessanti: