2017-08-02 101 views
1

我得到了一个在nodejs(expressjs)中制作的机器人,并托管在我的私人VPS上,我遇到了一个使用superagent lib进行HTTP请求的错误。 当有不活动周期长,的NodeJS服务器就像是在“睡眠模式”,并且第一个请求总是夹在我的try/catch错误,错误是这样的:enter image description hereMessenger Bot“睡眠模式”getaddrinfo

我得到了另一个bot托管在heroku上,但我没有这个错误,它似乎也许是我的VPS/Apache代理?

第一次请求后,我做了一个新的请求后,它按预期工作。这就像我的服务器处于“睡眠模式”,第一个请求告诉他醒来。

感谢您的回答。

+1

做一个ping请求每隔x分钟(或秒),让您的机器人活着。 – Jer

+0

是的,它可能是一个解决方案,谢谢你的想法:) – Paul

+0

但它是从一般的nodejs服务器的默认行为? – Paul

回答

1

这是NodeJS应用程序的正常行为。为防止服务器在不活动后关闭应用程序,可以每x分钟(或几秒)执行一次ping请求,以保持您的bot活着。

您也可以使用.setTimeout()函数。

server.setTimeout(10*60*1000); 

来源:Nodejs and express server closes connection after 2 minutes