0
我在使用TLS模塊的node.js中創建一個簡單的服務器。到目前爲止,客戶能夠連接,發送數據並從服務器斷開連接。但是,我想在從服務器斷開連接時打印客戶端的IP地址。就目前而言,我可以從事件回調函數外部打印客戶端的IP地址,但我不能在回調函數中執行此操作(檢查on('end)
)。回調函數的變量範圍
var tls = require('tls');
var fs = require('fs');
var server = tls.createServer({
key: fs.readFileSync('server-key.pem'),
cert: fs.readFileSync('server-cert.pem'),
}, function(cleartextStream) {
cleartextStream.setEncoding('utf8');
/*
* Error receiving data.
*/
cleartextStream.on('error', function (exception) {
});
/*
* Signal that it is safe to write again.
*/
cleartextStream.on('drain', function() {
});
/*
* New data received.
*/
cleartextStream.on('data', function (data) {
console.log('New data: '+data);
});
/*
* Remote client disconnected.
*/
console.log(cleartextStream.remoteAddress); // This prints the IP address correctly.
cleartextStream.on('end', function() {
console.log(cleartextStream.remoteAddress); // This prints undefined.
});
/*
* Server is shutting down.
*/
cleartextStream.on('close', function() {
});
});
server.listen(8000, function() {
console.log('Server listening.');
});
謝謝,就是這樣! – 2012-08-09 00:53:17