这个问题可能是由于http集成点的响应格式与websocket $connect事件期望的不同导致的。为了解决这个问题,你可以使用Lambda函数作为websocket $connect事件的集成点,这样你就可以完全控制响应的格式。以下是使用Lambda作为websocket集成点的示例代码:
import json
def lambda_handler(event, context):
response = {
'statusCode': 200,
'body': json.dumps({'message': 'Connected successfully'})
}
return response
上述代码表示当有websocket $connect事件时,Lambda函数将发送带有200状态码和消息的响应。你需要将这个Lambda函数部署在API Gateway上,并将websocket $connect事件与该函数进行映射。现在,当websocket客户端连接到你的API Gateway时,它将测试该映射,但现在它会看到期望的响应格式,并顺利连接。
另外,请确保在API Gateway的websocket集成处使用与Lambda函数相同的协议和端点。如果集成点不匹配,API Gateway将无法正确集成Lambda函数的响应。