diff --git a/server/stream_server.cpp b/server/stream_server.cpp index da1c11a0..1b6b14d3 100644 --- a/server/stream_server.cpp +++ b/server/stream_server.cpp @@ -626,7 +626,7 @@ void StreamServer::onMessageReceived(StreamSession* streamSession, const msg::Ba timeMsg->refersTo = timeMsg->id; timeMsg->latency = timeMsg->received - timeMsg->sent; // LOG(INFO) << "Latency sec: " << timeMsg.latency.sec << ", usec: " << timeMsg.latency.usec << ", refers to: " << timeMsg.refersTo << "\n"; - streamSession->sendAsync(timeMsg); + streamSession->sendAsync(timeMsg, true); // refresh streamSession state ClientInfoPtr client = Config::instance().getClientInfo(streamSession->clientId); diff --git a/server/stream_session.cpp b/server/stream_session.cpp index f0755614..0cdea8b2 100644 --- a/server/stream_session.cpp +++ b/server/stream_session.cpp @@ -128,10 +128,10 @@ void StreamSession::stop() void StreamSession::send_next() { - auto buffer = messages_.front(); + shared_const_buffer buffer = messages_.front(); + messages_.pop_front(); boost::asio::async_write(socket_, buffer, boost::asio::bind_executor(strand_, [ this, self = shared_from_this(), buffer ](boost::system::error_code ec, std::size_t length) { - messages_.pop_front(); if (ec) { LOG(ERROR, LOG_TAG) << "StreamSession write error (msg length: " << length << "): " << ec.message() << "\n";