gpt4 book ai didi

javascript - 为每个新套接字设置超时node.js

转载 作者:太空宇宙 更新时间:2023-11-04 03:10:41 25 4
gpt4 key购买 nike

当我依赖 net 模块 构建自己的 http 模块 时,我想为每个新套接字设置超时。我构建了以下内容:

server = net.createServer(function (socket) {
if(server.timeout==null){
server.timeout=120000;
if(server.timeoutCallBack==null){
server.timeoutCallBack=function(){socket.destroy();};
}
}
socket.setTimeout(server.timeout,server.timeoutCallBack());

因此,如果我的服务器的用户设置了新的超时持续时间,它将使用它。如果没有,则默认值为 2 分钟。

我的问题是我的服务器不服务第一个连接,只服务第二个连接。我的意思是,对于它收到的第一条 http 消息,它不会调用我的:

            socket.on("data", function (data) {
});

最佳答案

您作为回调传递给 socket.setTimeout 的内容是 server.timeoutCallBack()结果,它是未定义。您没有在该行之后 2 分钟调用 timeoutCallBack,而是在该行上调用了它,并且 setTimeout 什么也没调用。

您应该将对函数的引用传递给 setTimeout:

socket.setTimeout(server.timeout,server.timeoutCallBack);

关于javascript - 为每个新套接字设置超时node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21060306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com