Amazon AWS Websocket API-消息发送时禁止

时间:2019-05-08 14:55:35

标签: amazon-web-services amazon-ec2 websocket aws-lambda amazon-dynamodb

我正在尝试为我的项目实现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"}

我不太确定这是一个完整的版本(我确实成功部署并连接到它了吗?),这是怎么回事?我很乐意为您提供帮助

5 个答案:

答案 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);
        };