Amazon web services 向AWS API网关websocket连接方法发送参数

Amazon web services 向AWS API网关websocket连接方法发送参数,amazon-web-services,aws-lambda,aws-api-gateway,serverless-framework,Amazon Web Services,Aws Lambda,Aws Api Gateway,Serverless Framework,我随后使用python、aws apigategay和serverless创建了一个小型聊天应用程序。连接到Websocket时,连接ID存储在数据库中 一切按预期进行,现在我希望能够通过一个角色连接到Websocket,比如说聊天允许客户和商店员工 我正在试图找到一种方法来向connect方法发送一个参数,但到目前为止没有成功。例如,在建立连接时,我希望发送角色ID并存储在数据库中,以指定连接ID属于客户或存储员工 我读过API网关授权,但问题是聊天将包含在一个已经运行的应用程序中,该应用程序

我随后使用python、aws apigategay和serverless创建了一个小型聊天应用程序。连接到Websocket时,连接ID存储在数据库中

一切按预期进行,现在我希望能够通过一个角色连接到Websocket,比如说聊天允许客户和商店员工

我正在试图找到一种方法来向connect方法发送一个参数,但到目前为止没有成功。例如,在建立连接时,我希望发送角色ID并存储在数据库中,以指定连接ID属于客户或存储员工

我读过API网关授权,但问题是聊天将包含在一个已经运行的应用程序中,该应用程序不使用AWS授权


有什么方法可以做到这一点吗?

在连接调用中以头的形式发送值,并在后端检索该值以与connectionId一起存储

wscat --connect wss://aaaaaaaa.execute-api.us-east-2.amazonaws.com/test --header myHeader:myValue
在我的lambda中,标题看起来像

"headers": {
        "Host": "xxxxxxx.execute-api.us-east-2.amazonaws.com",
        "myHeader": "myValue",
        "Sec-WebSocket-Extensions": "permessage-deflate; client_max_window_bits",
        "Sec-WebSocket-Key": "xxxxxxx",
        "Sec-WebSocket-Version": "13",
        "X-Amzn-Trace-Id": "xxxxxxx",
        "X-Forwarded-For": "xxxxxx",
        "X-Forwarded-Port": "443",
        "X-Forwarded-Proto": "https"
    },

您可以通过查询字符串发送参数,如下所示:

 $  wscat -c wss://ws.mycustomdomain.com/?test=123
然后,您可以从函数处理程序中的
event.queryStringParameters
获取该参数

def handler(event, context):
    connectionId = event['queryStringParameters']['test']

希望这能帮上忙,比如queryStringParameters?但是找不到任何例子