我正在使用node.js进行长时间轮询。
基本上,node.js服务器接受来自用户的请求,然后检查一些更新。如果没有更新,它将在超时后检查它们。
但是,如果用户关闭了他的标签页或转到了另一个页面怎么办?就我而言,脚本继续工作。
当用户中止请求(关闭连接)时,node.js中是否可以检查或检测或捕获事件?
多亏了 Miroshko 和 yojimbo87的 回答,我才能够赶上’close’事件,但是我不得不做一些其他的调整。
仅仅捕获“关闭”事件并不能解决我的问题的原因是,当客户端将请求发送到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);
我的原始代码要大得多,因此为了展示敏感部分,我不得不将其削减很多。
我想知道是否有更好的解决方案,但这目前对我有用。
问题内容: 如何检查连接是否已在事务中?我正在使用Microsoft SQL Server数据库文件。 问题答案: 经过一番搜索,我发现了另一个“堆栈溢出”问题。事实证明,您不能在ADO.NET中嵌套事务。尝试时,您可能最终会启动两个不相关的事务,这会导致并行事务错误。 要查看连接当前是否在事务中,可以执行以下操作: 这将返回嵌套事务的数量。 请注意,您可以手动嵌套事务,而无需使用SqlTrans
从我的android应用程序中,如何检测到与IP为192.168.32.232的服务器的连接是否丢失?一旦连接丢失,我想编写一个服务类,它将在后台检查与服务器的连接。如果连接丢失,我的应用程序应该显示一个对话框。
问题内容: 你如何检查是否可以通过Java连接到Internet?一种方法是: 但是是否有更合适的方法来执行该任务,特别是如果你需要经常进行连续检查并且很有可能断开互联网连接时? 问题答案: 你应该连接到实际应用程序需要的地方。否则,你要测试是否与某个无关的地方(在这种情况下为Google)建立了连接。 特别是,如果你要尝试与Web服务进行通信,并且要控制该Web服务,则最好使用某种廉价的“获取状
问题内容: 我需要检查服务器是否支持SSL和来自Web服务器的密码。 我查看了Java中的SSLSocket,但无法正常工作。 我使用的方法始终为每个网址提供相同的协议。此外,我没有从服务器获得密码。我猜是正确的方法 如何检查服务器使用SSL?服务器返回了什么密码? 问题答案: 分别返回 您一方 可以支持的协议和密码列表。返回您启用的这些列表的子集。 这不会告诉您有关服务器支持什么的太多信息。 根
问题内容: 我正在开发用于访问Redis服务器的Python服务(类)。我想知道如何检查Redis Server是否正在运行。而且如果某种原因我无法连接到它。 这是我的代码的一部分 它打印以下内容 即使我的Redis服务器未运行。 当我发现我的Python代码仅在对redis实例执行 set() 或 get() 时才连接到服务器。 所以我不希望其他服务使用我的类来获得异常说 我想返回正确的消息/错
本文向大家介绍Linux 检测服务器是否连接着网络,包括了Linux 检测服务器是否连接着网络的使用技巧和注意事项,需要的朋友参考一下 Linux 检测服务器是否连接着网络 摘要: 每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机! 主要使用场景: 由于自己有一台服务器放在偏远的老家,有可能会遇到停电导致断网的问题,并且停电后UPS使用时间也有限制, 因此设计此脚本为了解