diff --git a/src/Http/HttpSession.cpp b/src/Http/HttpSession.cpp index 0d3c6760..6cb17115 100644 --- a/src/Http/HttpSession.cpp +++ b/src/Http/HttpSession.cpp @@ -594,20 +594,20 @@ void HttpSession::sendResponse(int code, return; } - if (!body->sendFile(getSock()->rawFD())) { - //支持sendfile优化 + if (typeid(*this) == typeid(HttpSession) && !body->sendFile(getSock()->rawFD())) { + //http支持sendfile优化 return; } GET_CONFIG(uint32_t, sendBufSize, Http::kSendBufSize); - if(body->remainSize() > sendBufSize){ + if (body->remainSize() > sendBufSize) { //文件下载提升发送性能 setSocketFlags(); } //发送http body - AsyncSenderData::Ptr data = std::make_shared(shared_from_this(),body,bClose); - getSock()->setOnFlush([data](){ + AsyncSenderData::Ptr data = std::make_shared(shared_from_this(), body, bClose); + getSock()->setOnFlush([data]() { return AsyncSender::onSocketFlushed(data); }); AsyncSender::onSocketFlushed(data);