sender.on('drain', function () { var time1 = Date.now(); var loaded = 0; try { // 已经上传的字节数 = socket当前累计发送的字节数 - 头部长度 - socket以前发送的字节数 loaded = sender.req.connection.bytesWritten - sender.req._header.length - (sender.req.connection._lastBytesWritten || 0); } catch (e) { } var total = contentLength; var speed = parseInt((loaded - size0) / ((time1 - time0) / 1000) * 100) / 100; var percent = total ? (parseInt(loaded / total * 100) / 100) : 0; time0 = time1; size0 = loaded; params.onProgress({ loaded: loaded, total: total, speed: speed, percent: percent, }); });