Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Verwalten von verbundenen Benutzern und Client-Apps: $connect- und $disconnect-Routen

Fokusmodus
Verwalten von verbundenen Benutzern und Client-Apps: $connect- und $disconnect-Routen - Amazon API Gateway

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.

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.

Im folgenden Abschnitt wird beschrieben, wie Sie die $connect- und $disconnect-Routen für Ihre WebSocket-API verwenden.

Die Route $connect

Client-Apps verbinden sich durch Senden einer WebSocket-Upgrade-Anforderung mit Ihrer WebSocket-API. Wenn die Anforderung erfolgreich ist, wird die Route $connect ausgeführt, während die Verbindung hergestellt wird.

Da die WebSocket-Verbindung eine zustandsbehaftete Verbindung ist, können Sie eine Autorisierung nur für die Route $connect konfigurieren. AuthN/AuthZ werden nur zur Verbindungszeit ausgeführt.

Solange die Integration im Zusammenhang mit der Route $connect noch nicht abgeschlossen wurde, steht die Upgrade-Anforderung noch an und die tatsächliche Verbindung wird nicht hergestellt. Wenn die $connect-Anforderung fehlschlägt (z. B. aufgrund eines AuthN/AuthZ-Fehlers oder eines Integrationsfehlers), wird die Verbindung nicht hergestellt.

Anmerkung

Wenn die Autorisierung für $connect fehlschlägt, wird keine Verbindung hergestellt, und der Client erhält eine 401- oder 403-Antwort.

Das Einrichten einer Integration für $connect ist optional. Sie sollten die Einrichtung einer $connect-Integration unter folgenden Umständen erwägen:

  • Sie möchten Clients ermöglichen, Unterprotokolle mithilfe des Sec-WebSocket-Protocol-Felds anzugeben. Beispielcode finden Sie unter Richten Sie eine $connect Route ein, für die ein Unterprotokoll erforderlich ist WebSocket .

  • Sie möchten benachrichtigt werden, wenn Clients verbunden werden.

  • Wenn Sie Verbindungen drosseln möchten oder wenn Sie steuern möchten, wer eine Verbindung herstellt.

  • Wenn Sie möchten, dass Ihr Backend über eine Rückruf-URL Nachrichten an Clients zurücksendet.

  • Sie möchten jede Verbindungs-ID und andere Informationen in einer Datenbank (z. B. Amazon DynamoDB) speichern.

Verbindungsinformationen von der $connect-Route übergeben

Sie können sowohl Proxy- als auch Nicht-Proxy-Integrationen verwenden, um Informationen von der $connect-Route an eine Datenbank oder einen anderen AWS-Service zu übergeben.

So übergeben Sie Verbindungsinformationen mithilfe einer Proxy-Integration

In diesem Fall können Sie über eine Lambda-Proxy-Integration auf die Verbindungsinformationen zugreifen. Verwenden Sie einen anderen AWS-Service oder eine andere AWS Lambda-Funktion, um Beiträge an die Verbindung zu senden.

Die folgende Lambda-Funktion zeigt, wie das requestContext-Objekt verwendet wird, um die Verbindungs-ID, den Domänennamen, den Stufennamen und die Abfragezeichenfolgen zu protokollieren.

Node.js
export const handler = async(event, context) => { const connectId = event["requestContext"]["connectionId"] const domainName = event["requestContext"]["domainName"] const stageName = event["requestContext"]["stage"] const qs = event['queryStringParameters'] console.log('Connection ID: ', connectId, 'Domain Name: ', domainName, 'Stage Name: ', stageName, 'Query Strings: ', qs ) return {"statusCode" : 200} };
Python
import json import logging logger = logging.getLogger() logger.setLevel("INFO") def lambda_handler(event, context): connectId = event["requestContext"]["connectionId"] domainName = event["requestContext"]["domainName"] stageName = event["requestContext"]["stage"] qs = event['queryStringParameters'] connectionInfo = { 'Connection ID': connectId, 'Domain Name': domainName, 'Stage Name': stageName, 'Query Strings': qs} logging.info(connectionInfo) return {"statusCode": 200}
export const handler = async(event, context) => { const connectId = event["requestContext"]["connectionId"] const domainName = event["requestContext"]["domainName"] const stageName = event["requestContext"]["stage"] const qs = event['queryStringParameters'] console.log('Connection ID: ', connectId, 'Domain Name: ', domainName, 'Stage Name: ', stageName, 'Query Strings: ', qs ) return {"statusCode" : 200} };

So übergeben Sie Verbindungsinformationen mithilfe einer Nicht-Proxy-Integration

  • Sie können mit einer Nicht-Proxy-Integration auf die Verbindungsinformationen zugreifen. Richten Sie die Integrationsanfrage ein und stellen Sie eine WebSocket-API-Anforderungsvorlage bereit. Die folgende Zuordnungsvorlage der Velocity Template Language (VTL) enthält eine Integrationsanforderung. Diese Anforderung sendet die folgenden Details an eine Nicht-Proxy-Integration:

    • Verbindungs-ID

    • Domainname

    • Stufenname

    • Pfad

    • Überschriften

    • Abfragezeichenfolgen

    Diese Anforderung sendet die Verbindungs-ID, den Domain-Namen, den Namen der Phase, die Pfade, Header und Abfragezeichenfolgen an eine Nicht-Proxy-Integration.

    { "connectionId": "$context.connectionId", "domain": "$context.domainName", "stage": "$context.stage", "params": "$input.params()" }

    Weitere Informationen zum Einrichten von Datenübertragungen finden Sie unterDatentransformationen für WebSocket-APIs in API Gateway.

    Zum Abschließen der Integrationsanforderung legen Sie die Integrationsantwort StatusCode: 200 fest. Weitere Informationen zum Einrichten einer Integrationsantwort finden Sie unter Integrationsantwort mit der API Gateway-Konsole einrichten.

Die Route $disconnect

Die Route $disconnect wird ausgeführt, nachdem die Verbindung geschlossen wurde.

Die Verbindung kann vom Server oder vom Client geschlossen werden. Da die Verbindung bereits geschlossen ist, wenn sie ausgeführt wird, ist $disconnect ein "Best Effort"-Ereignis. API Gateway wird sich nach bemühen, das $disconnect-Ereignis an Ihre Integration zu übermitteln, kann aber die Übermittlung nicht garantieren.

Das Backend kann die Verbindungstrennung mithilfe der @connections-API einleiten. Weitere Informationen finden Sie unter Verwenden der @connections-Befehle in Ihrem Backend-Service.

DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.