退出页面的Nodejs事件

我对NodeJS和ExpressJS非常陌生,但是想知道是否有一个事件在页面离开时触发。 我有一个ExpressJS / NodeJS应用程序,在app.js中,我在一个特定的页面上设置了一个UDP监听器; 即

app.get('/sims', function(req, res) { var udp = require('dgram'); var udpSocket = udp.createSocket('udp4'); udpSocket.bind(8081); udpSocket.on("error", function (err) { console.log("server error:\n" + err.stack); udpSocket.close(); }); udpSocket.on("message", function (msg, rinfo) { console.log("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port); //do stuff with the message to dynamically update the page }); udpSocket.on("listening", function () { var address = udpSocket.address(); console.log("server listening " + address.address + ":" + address.port); }); udpSocket.on("close", function () { console.log("udp socket closed!!!"); }); }); 

我的问题是,我怎么知道什么时候closuresudpSocket? 我不能在app.get的范围内closures它,而且当我离开页面时它似乎不会自动closures。 每当有人访问该页面时,我不想只留下一堆UDP套接字。

问题是:HTTP不是双向的,所以发送数据只有一个“途径”(服务器到客户端)。

所以我认为你要么添加一个超时机制(如果在X时间内没有发送消息,closures套接字),或者查看websockets(允许双向通信)。 我build议看看socket.io,Primus,Engine.io或谷歌“节点websocket”;)