我先创建一个websocket,然后创建一个自定义路由。发布之前,我需要为$disconnect
和$default
选择一个集成,因为我都选择了Mock(我也尝试了默认的Lambda函数),因此可以发布。
然后我使用wscat呼叫
wscat -c wss://t0p5b2xpm3.execute-api.us-east-1.amazonaws.com/prod
套接字成功连接,然后我尝试调用路由
{"action":"echo", "data":"test response body"}
并出现以下错误。
{"message": "Internal server error", "connectionId":"aDH97cQJoAMCI8Q=", "requestId":"aDIAhGE8oAMFoEg="}
有人有什么想法吗?
谢谢
马特
答案 0 :(得分:0)
对于lambda函数,您需要为statusCode
,200
,$connect
和自定义路由返回$disconnect
中的$default
。一个简单的javascript示例:
module.exports.handler = async (event) => {
return {
statusCode: 200,
};
};
答案 1 :(得分:0)
exports.handler = async (event) => {
// TODO implement
let time = "undefined";
let state = "undefined";
if (event.body !== null && event.body !== undefined) {
let body = JSON.parse(event.body);
if (body.time && body.state)
{
time = body.time;
state = body.state;
}
}
const response = {
statusCode: 200,
body: JSON.stringify({time:time, state: state}),
};
return response;
};
在使用API-Gateway的情况下,您将无法像Get and Post中一样将响应修改为json,因此您可以使用此代码从即将到来的json对象中获取时间和状态。使用wscat -c链接进行连接,然后将您的json发送为{"time":"22:32","state":"LA"}
尝试输入$ default以确保您以正确的方式收到发送邮件。
祝你好运!