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;

  • 相关阅读:
    同一台Windows机器中启动多个Memcached服务
    Java注解(三)
    Java注解(二)
    Java注解(一)
    Memcached入门
    C++读取配置文件
    C语言读取配置文件
    凸优化中的基本概念
    Hadoop伪分布式的搭建
    老师布置的几道作业
  • 原文地址:https://www.cnblogs.com/EricaMIN1987_IT/p/3643497.html
Copyright © 2011-2022 走看看