首页 > 解决方案 > 使用 AWS 不可调用的 Websocket API

问题描述

我正在使用 AWS API Gateway onConnect 和 onDisconnect 创建一个演示 websocket API,我附加了 Lambda 函数

像这样的代码

const AWS = require('aws-sdk');
const ddb = new AWS.DynamoDB.DocumentClient();

function addConnectionId(connectionId) {
    return ddb.delete({
        TableName: 'Chat',
        Key: {
            connectionid : connectionId,

        },

    }).promise();}


exports.handler = (event) => {
    console.log("Connection broken");
    const connectionId = event.requestContext.connectionId;
    addConnectionId(connectionId).then(() => {
        return {
            statusCode: 200, 
            body:JSON.stringify({ msg: 'connected'})
        }

    });}

但是当我从 wscat 调用它时,我得到 502

D:>wscat -c wss://r6e1pcpjib.execute-api.ap-south-1.amazonaws.com/development
error: Unexpected server response: 502

#aws #webSocket #find-a-specialist 在此处输入图像描述

我尝试了下面的文章,但没有找到所需的输出

AWS API Gateway 错误响应生成 502“Bad Gateway”

标签: node.jsamazon-web-serviceswebsocketaws-lambdaaws-api-gateway

解决方案


问题在于从处理程序返回的数据必须是使用 JSON.Stringify 的字符串格式,并且从处理程序返回的输出必须是特定格式。


推荐阅读