zoukankan      html  css  js  c++  java
  • 从零开始学习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!
    ');
    });
    
    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 + '
    ';
        ret += JSON.stringify(url.parse(req.url, true)) + '
    ';
        var keys = Object.keys(req.headers);
        for (var i = 0; i < keys.length; i++){
            var key = keys[i];
            ret += i + ' ' + key + ': ' + req.headers[key] + '
    ';
        }
        if (req.trailers) ret += req.trailers + '
    ';
        return ret;
    }
    
    exports.reqToString = reqToString;

  • 相关阅读:
    Elasticsearch-PHP 索引操作2
    Elasticsearch-PHP 索引操作
    Linux系统编程1_C标准函数库和系统调用
    Git命令_git commit
    Git命令_git log
    Linux27_配置samba
    计算机网络12_整理
    理解操作系统8——字符设备与块设备
    网站开发基础知识3_会话和cookie
    网站开发基础知识2_前后端分离
  • 原文地址:https://www.cnblogs.com/EricaMIN1987_IT/p/3643497.html
Copyright © 2011-2022 走看看