首页 > 解决方案 > 谷歌云功能释放资源而不响应请求

问题描述

我想释放与节点 js 请求关联的资源,而不向客户端发送任何类型的响应。

这可能听起来很奇怪,但我的目标很简单,最近几天我的服务器一直被黑客攻击......我正在尝试改进防御,如果我发现恶意请求,我可以直接放弃它而不发送任何响应我将使攻击者等待连接超时,这将带来更多优势。

我试过了:

exports.test = (req, res) => {
res.end();
};

但在这种情况下,服务器发送一个空响应,这不是我的目标,因为我想让客户端永远等待

也试过:

exports.test = (req, res) => {
res.socket.destroy();
};

在谷歌云功能上会引发异常

有谁知道如果我简单地返回它将被释放或连接将挂起的函数,是否在 GCF 上?

exports.test = (req, res) => {
return; //will google release all resources or connection and socket will be kept until timeout?
};

标签: node.jsexpressgoogle-cloud-functions

解决方案


Cloud Functions 无法启用您尝试执行的操作。保持连接打开的唯一方法是您的函数超时而没有响应。您不能指示它在终止功能的同时保持连接打开。或者,换一种说法,您将不得不为执行秒支付通常的 Cloud Functions 费率,以保持该连接打开。


推荐阅读