我有一个家庭作业,只使用节点本机模块构建http
服务器。
我试图保护服务器免于过载,因此每个请求都经过哈希处理和存储。
如果某个请求达到了较高的数字,比如说500,我就会调用socket.destroy()
。
每个间隔(一分钟)我重新启动哈希表。问题是当我做一个以前死了的套接字现在再次工作。我每个间隔唯一做的就是requests = {}
,与连接无关。
为什么连接再次存在的任何想法?是否有比destroy()
更好的使用功能?
由于
答案 0 :(得分:1)
销毁套接字不一定会阻止客户端使用新套接字重试请求。
您可以尝试仅使用非OK
状态代码进行最低限度的响应:
if (requests[path] >= 500) {
res.statusCode = 503;
res.end();
}
并且,503
status code:
由于服务器临时过载或维护,服务器当前无法处理请求。