我是节点新手,对http.ClientRequest中的套接字事件有疑问。文档说
Event: 'socket'#
function (socket) { }
Emitted after a socket is assigned to this request.
我有以下内容:
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
我如何阅读远程地址?
答案 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);
});
});