代码之家  ›  专栏  ›  技术社区  ›  Big Endian

AWS API网关WebSockets-ConnectionID在哪里?

  •  0
  • Big Endian  · 技术社区  · 6 年前

    我正在$connect路由上设置一个带有自定义授权程序的AWS API网关WebSockets,如下所述:

    https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-route-keys-connect-disconnect.html

    我的问题是--如何获取connectionID,即我以后可以用来广播到连接的客户机的标识符?

    2 回复  |  直到 5 年前
        1
  •  1
  •   Big Endian    5 年前

    这里的问题是当使用HTTP作为集成类型时——即当调用一个或多个APIgw路由($connect/$disconnect/$invoke)时,会命中HTTP端点。我们发现我们无法代理请求(意味着我们会丢失原始头,包括auth),但是如果我们需要连接ID,我们必须指定一个请求模板并使用如下内容:

    “connectionid”:“$context.connectionid”,“body”:“$input.body”

        2
  •  0
  •   Jaewoo Ahn    5 年前

    您可以从上下文变量中获取connectionID。有关WebSocket API的可用变量,请参见以下内容: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-mapping-template-reference.html

    在lambda函数中,可以通过event.requestContext访问上下文变量。