呼叫事件'套接字'在http.ClientRequest中

时间:2014-07-07 17:24:06

标签: node.js

我是节点新手,对http.ClientRequest中的套接字事件有疑问。文档说

Event: 'socket'#
function (socket) { }

Emitted after a socket is assigned to this request.

网址:nodejs documentation

我有以下内容:

var req = http.request(requestOptions, function(res) {
    util.puts('STATUS: ' + res.statusCode);
    util.puts('HEADERS: ' + JSON.stringify(res.headers));

    res.setEncoding('utf-8');
    res.on('data', function(chunk) {
        util.puts('BODY: ' + chunk);
    });
});

req.on('socket', function(sock) {
    util.puts('req.on socket event called');
    util.puts(sock.address());
    util.puts('Remote address: ' + sock.remoteAddress + ':' + sock.remotePort);

});

我试图找出函数(socket){}。上面的socket事件具有以下输出 'util.puts(sock.address());''util.puts('Remote address: ' + sock.remoteAddress + ':' + sock.remotePort);'

> null
> Remote address: undefined:undefined

我如何阅读远程地址?

1 个答案:

答案 0 :(得分:0)

在分配套接字时,尚未分配地址。试试这个:

req.on('socket', function(sock) {
  sock.on('connect', function(connection) {   
    util.puts('req.on socket event called');
    util.puts(util.inspect(sock.address()));
    util.puts('Remote address: ' + sock.remoteAddress + ':' + sock.remotePort);
  });
});