我正在尝试为我的项目实现websocket api,所以我正在看本教程https://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/
我试图部署他们链接https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:729047367331:applications~simple-websockets-chat-app的简单聊天应用
我能够使用wscat -c wss:// url成功连接,但是当我尝试发送消息时,出现以下错误(存在实际ID,我不确定它们是从何处生成的)我把它们藏起来了
{"message": "Forbidden", "connectionId":"sample_id", "requestId":"sample_id"}
我不太确定这是一个完整的版本(我确实成功部署并连接到它了吗?),这是怎么回事?我很乐意为您提供帮助
答案 0 :(得分:1)
连接后,尝试{"message" : "sendMessage", "data" :" hi"}
。
答案 1 :(得分:1)
在创建任何工作路由之前,您必须已经在 API Gateway 上配置了 $default
路由。
答案 2 :(得分:0)
由于@prachiSingh提供的解决方案,因此可以通过稍作调整来发送示例消息。...{“ message”:“ sendmessage”,“ data”:“ hello”}。基本上所有小写字母都用于sendmessage。
答案 3 :(得分:0)
这对我有用,需要对对象进行字符串化处理,以及传递,动作和数据
var test = { action: "sendmessage", data: "hello world" };
ws.on("open", function open() {
ws.send(JSON.stringify(test));
});
答案 4 :(得分:0)
这是我正在做的,但仍然保持不变
{“消息”:“禁止”,“ connectionId”:“ sample_id”,“ requestId”:“ sample_id”}
var test = { action: "sendmessage", data: "hello world" };
connection.onopen = () => {
connection.send(JSON.stringify(test));
console.log("connection open?????");
};
connection.onerror = error => {
console.log(`WebSocket error: ${error}`);
};
connection.onmessage = e => {
console.log("On message come here?????")
console.log("EEEE", JSON.stringify(e));
console.log(e.data);
};