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à.
Configura una $connect
route che richiede un WebSocket sottoprotocollo
I client possono utilizzare il Sec-WebSocket-Protocol
campo per richiedere un WebSocket sottoprotocollo$connect
percorso per consentire le connessioni solo se un client richiede un sottoprotocollo supportato dal tuoAPI.
La funzione Lambda di esempio seguente restituisce l'intestazione Sec-WebSocket-Protocol
ai client. La funzione stabilisce una connessione con l'utente API solo se il client specifica il sottoprotocollo. myprotocol
Per un AWS CloudFormation modello che crea questo esempio API e l'integrazione del proxy Lambda, vedi. ws-subprotocol.yaml
export const handler = async (event) => { if (event.headers != undefined) { const headers = toLowerCaseProperties(event.headers); if (headers['sec-websocket-protocol'] != undefined) { const subprotocolHeader = headers['sec-websocket-protocol']; const subprotocols = subprotocolHeader.split(','); if (subprotocols.indexOf('myprotocol') >= 0) { const response = { statusCode: 200, headers: { "Sec-WebSocket-Protocol" : "myprotocol" } }; return response; } } } const response = { statusCode: 400 }; return response; }; function toLowerCaseProperties(obj) { var wrapper = {}; for (var key in obj) { wrapper[key.toLowerCase()] = obj[key]; } return wrapper; }
Puoi utilizzarlo wscat
-s
per specificare i sottoprotocolli durante la connessione.
Il comando seguente tenta una connessione con un sottoprotocollo non supportato. Poiché il client ha specificato il sottoprotocollo chat1
, l'integrazione Lambda restituisce un errore 400 e la connessione non riesce.
wscat -c wss://
api-id
.execute-api.region
.amazonaws.com/beta
-s chat1error: Unexpected server response: 400
Il comando seguente include un sottoprotocollo supportato nella richiesta di connessione. L'integrazione Lambda consente la connessione.
wscat -c wss://
api-id
.execute-api.region
.amazonaws.com/beta
-s chat1,myprotocolconnected (press CTRL+C to quit)
Per ulteriori informazioni sull'invocazione WebSocket APIs, consulta. Richiama le API WebSocket