0
为什么这两个水库&插座“超时”处理程序被触发 而我只能拨打为什么res&socket'timeout'处理程序被触发,而我只调用socket.emit('timeout')?
socket.emit('timeout');
不知道这是否是明显的东西给你。谢谢。
[输出]
[Function]
[Function]
true
timeout
timeout2
[代码]
var http = require('http');
function http_relay(req, res){
//console.log(res);
console.log(req.socket === res.socket);
//console.log(res.
console.log(res.socket._events.timeout)
console.log(res.connection._events.timeout)
console.log(res.socket._events.timeout === res.connection._events.timeout)
res.on('timeout',function(){
//res.end();
console.log('timeout');
});
socket = res.socket;
socket.on('timeout',function(){
//res.end();
console.log('timeout2');
});
socket.emit('timeout');
//res.emit('timeout');
}
ser = http.createServer(http_relay);
ser.listen(8080);
非常感谢您的解释和您的链接。现在流程对我来说很清楚。流:发送套接字超时事件 - >套接字超时回调 - >与此回调,发射res超时事件 - > res超时回调。 – user1384726
@ user1384726 - 是的,就是这样。使用开源库进行编程的一个巨大优势是您可以查看代码(如果您可以通过搜索找到合适的代码片段)并查看它到底在做什么。 – jfriend00
在我怀疑导致行为的'套接字'类和'响应'类之间存在某种关系之前。我确实看到'socket'是'console.log'的'response'的属性。但是,情况并非如此。再次感谢您的解释。 – user1384726