Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Richten Sie eine $connect
Route ein, für die ein WebSocket Unterprotokoll erforderlich ist
Clients können das Sec-WebSocket-Protocol
Feld verwenden, um während der Verbindung zu Ihrem WebSocket API ein WebSocket Unterprotokoll$connect
Route einrichten, um Verbindungen nur dann zuzulassen, wenn ein Client ein von Ihnen API unterstütztes Unterprotokoll anfordert.
Die folgende Lambda-Beispielfunktion gibt den Sec-WebSocket-Protocol
-Header an Clients zurück. Die Funktion stellt API nur dann eine Verbindung zu Ihrem her, wenn der Client das myprotocol
Unterprotokoll spezifiziert.
Eine AWS CloudFormation Vorlage, die dieses Beispiel API und die Lambda-Proxyintegration erstellt, finden Sie unter 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; }
Sie können wscat
-s
-Flag, um während der Verbindung Unterprotokolle anzugeben.
Mit dem folgenden Befehl wird versucht, eine Verbindung mit einem nicht unterstützten Unterprotokoll herzustellen. Da der Client das chat1
-Unterprotokoll angegeben hat, gibt die Lambda-Integration einen 400-Fehler zurück und die Verbindung ist nicht erfolgreich.
wscat -c wss://
api-id
.execute-api.region
.amazonaws.com/beta
-s chat1error: Unexpected server response: 400
Der folgende Befehl enthält ein unterstütztes Unterprotokoll in der Verbindungsanforderung. Die Lambda-Integration ermöglicht die Verbindung.
wscat -c wss://
api-id
.execute-api.region
.amazonaws.com/beta
-s chat1,myprotocolconnected (press CTRL+C to quit)
Weitere Informationen zum Aufrufen WebSocket APIs finden Sie unter. APIs aufrufen WebSocket