修改API Gateway的$connect、$disconnect或任意自定义路由中的WebSocket状态码

kcugc4gi  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(118)

我想用自定义代码修改WebSocket的事件代码和事件原因。
我想使用以下预留代码申请

4000-4999

    Status codes in the range 4000-4999 are reserved for private use
    and thus can't be registered. Such codes can be used by prior
    agreements between WebSocket applications. The interpretation of
    these codes is undefined by this protocol.

有没有一种方法可以达到同样的效果?
现在,当我使用socket.close()从JavaScript客户端关闭WebSocket时,我得到下面的事件代码

event.code=1005 event.reason=

有没有办法在API网关lambda端修改它?
我尝试在下面的断开lambda

exports.handler =  async function(event, context, callback) {
  var res ={
        "statusCode": 4090,
        "body": "Connection closed"
    };
  callback(null, res);
}

不起作用我正在API网关/上使用Lambda代理集成

tkclm6bt

tkclm6bt1#

当客户端断开连接时,会调用disconnect lambda。您希望使用连接管理API断开客户端连接。代码似乎不受支持,但您可以关闭连接。
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-how-to-call-websocket-api-connections.html
一定要小心,因为在使用自定义域时,从事件构建callbackUrl似乎无法正常工作,您需要从舞台本身获取URL。

相关问题