Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Panoramica di WebSocket APIs in API Gateway
In API Gateway puoi creare un' WebSocket API come frontend stateful per un AWS servizio (come Lambda o DynamoDB) o per un endpoint HTTP. L' WebSocket API richiama il backend in base al contenuto dei messaggi che riceve dalle app client.
A differenza di un'API REST, che riceve e risponde alle richieste, un' WebSocket API supporta la comunicazione bidirezionale tra le app client e il backend. Il back-end può inviare messaggi di callback a client connessi.
Nella tua WebSocket API, i messaggi JSON in arrivo vengono indirizzati alle integrazioni di backend in base ai percorsi che configuri. (Messaggi non JSON sono indirizzati a una route $default
configurata dall'utente).
Una route include una chiave di route, che è il valore previsto dopo che un'espressione di selezione della route è stata valutata. routeSelectionExpression
è un attributo definito a livello di API. Specifica una proprietà JSON che deve essere presente nel payload del messaggio. Per ulteriori informazioni sulle espressioni di selezione della route, consulta Espressioni di selezione dell'instradamento.
Ad esempio, se i messaggi JSON contengono una proprietà action
e desideri eseguire operazioni diverse in base a questa proprietà, l'espressione di selezione della route potrebbe essere ${request.body.action}
. La tabella di routing specifica quale operazione eseguire abbinando il valore della proprietà action
ai valori delle chiavi route personalizzate definiti nella tabella.
Usa i percorsi per un'API WebSocket
Esistono tre route predefinite che possono essere utilizzate: $connect
, $disconnect
e $default
. Inoltre, puoi creare route personalizzate.
-
API Gateway chiama il
$connect
percorso quando viene avviata una connessione persistente tra il client e un' WebSocket API. -
API Gateway chiama la route
$disconnect
quando il client o il server si scollega dall'API. -
API Gateway chiama una route personalizzata dopo che l'espressione di selezione della route viene valutata rispetto al messaggio, se viene trovata una route corrispondente; la corrispondenza determina quale integrazione viene richiamata.
-
API Gateway chiama la route
$default
se l'espressione di selezione della route non può essere valutata rispetto al messaggio o se non viene trovata una route corrispondente.
Per ulteriori informazioni sulle route $connect
e $disconnect
, consulta Gestione di utenti connessi e app client: instradamenti $connect e $disconnect.
Per ulteriori informazioni sulla route $default
e le route personalizzate, consulta Invocazione dell'integrazione backend con l'instradamento $default e gli instradamenti personalizzati in Gateway API.
Invio dei dati alle app client connesse
I servizi di back-end possono inviare dati alle app client connesse. È possibile inviare i dati nel modo seguente:
-
Utilizza un'integrazione per inviare una risposta, che viene restituita al client da una risposta di instradamento definita.
-
Puoi utilizzare l'API
@connections
per inviare una richiesta POST. Per ulteriori informazioni, consulta Utilizzo di comandi @connections nel servizio di back-end.
WebSocket Codici di stato delle API
API Gateway WebSocket APIs utilizza i seguenti codici di stato per la comunicazione dal server al client, come descritto nel WebSocket Close Code Number Registry
- 1001
-
API Gateway restituisce questo codice di stato quando il client è inattivo per 10 minuti o raggiunge la durata massima della connessione di 2 ore.
- 1003
-
API Gateway restituisce questo codice di stato quando un endpoint riceve un tipo di supporto binario. I tipi di supporti binari non sono supportati per WebSocket APIs.
- 1005
API Gateway restituisce questo codice di stato se il client invia un frame chiuso senza un codice di chiusura.
- 1006
API Gateway restituisce questo codice di stato in caso di chiusura imprevista della connessione, ad esempio la connessione TCP chiusa senza un frame WebSocket chiuso.
- 1008
-
API Gateway restituisce questo codice di stato quando un endpoint riceve troppe richieste da un determinato client.
- 1009
-
API Gateway restituisce questo codice di stato quando un endpoint riceve un messaggio troppo grande per essere elaborato.
- 1011
API Gateway restituisce questo codice di stato in caso di errore interno del server.
- 1012
-
API Gateway restituisce questo codice di stato se il servizio si riavvia.