Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何检查node.js服务器中的连接是否中止大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Node.js进行一些长时间的轮询.
基本上,node.js服务器接受来自用户的请求,然后检查一些更新.如果没有更新,它将在超时后检查它们.
但是如果用户已经关闭了他的标签,或者到另一个页面呢?在我的情况下,脚本继续工作.
用户已经中止请求(关闭连接)的情况下,node.js中有没有办法检查或检测或捕获事件?

解决方法

感谢Miroshko和yojimbo87的答案,我能够抓住“关闭”事件,但我不得不进行一些额外的调整.

只是抓住“关闭”事件并没有解决我的问题的原因是当客户端将请求发送到node.js服务器时,如果连接仍然打开,服务器本身就不能获取信息,直到它发回到客户端(据我所知 – 这是因http协议).
所以,额外的调整是不时地向响应写一些东西.
还有一件事是阻止这个工作,就是我将’Content-type’作为’application / json’.将其更改为“text / javascript”有助于流式化“空白”,而不关闭连接.

最后,我有这样的事情:

var server = http.createServer(function(req,res){    
    res.writeHead(200,{'Content-type': 'text/javascript'});

    req.connection.on('close',function(){    
       // code to handle connection abort
    });

    /**
     * Here goes some long polling handler
     * that performs res.write(' '); from time to time
     */

    // some another code...
});
server.listen(NODE_PORT,NODE_LISTEN_HOST);

我的原始代码要大得多,所以我不得不削减很多只是为了显示敏感部分.

我想知道是否有更好的解决方案,但这是为我工作的.

大佬总结

以上是大佬教程为你收集整理的如何检查node.js服务器中的连接是否中止全部内容,希望文章能够帮你解决如何检查node.js服务器中的连接是否中止所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。