从零开始学习Node.js系列教程五:服务器监听方法

httpsnifferInvoke.js

var http = require('http'); var sniffer = require('./httpsniffer'); var server = http.createServer(function(req, res){ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello, World!\n'); }); sniffer.sniffOn(server); server.listen(3000);

httpsniffer.js

//http sniffer 监听每个服务器事件,然后输出每个事件的相关信息 var url = require('url'); var util = require('util'); exports.sniffOn = function(server){ server.on('request', function(req, res){ util.log('e_request'); util.log(reqToString(req)); }); server.on('close', function(error){ util.log('e_close error=' + error); }); server.on('checkContinue', function(req, res){ util.log('e_checkContinue'); util.log(reqToString(req)); res.writeContinue(); }); server.on('upgrade', function(req, socket, head){ util.log('e_upgrade'); util.log(reqToString(req)); }); server.on('clientError', function(){ util.log('e_clientError'); }); } var reqToString = function(req){ var ret = 'request' + req.method + ' ' + req.httpVersion + ' ' + req.url + '\n'; ret += JSON.stringify(url.parse(req.url, true)) + '\n'; var keys = Object.keys(req.headers); for (var i = 0; i < keys.length; i++){ var key = keys[i]; ret += i + ' ' + key + ': ' + req.headers[key] + '\n'; } if (req.trailers) ret += req.trailers + '\n'; return ret; } exports.reqToString = reqToString;

从零开始学习Node.js系列教程五:服务器监听方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyppwp.html