Improve websocket send performance (RIPD-1158)

This commit is contained in:
Miguel Portilla
2016-05-18 12:28:02 -04:00
committed by Nik Bougalis
parent 154e90b1ca
commit b14555c742

View File

@@ -288,15 +288,11 @@ ServerHandlerImp::onWSMessage(
{ {
auto const jr = auto const jr =
this->processSession(session, jc, jv); this->processSession(session, jc, jv);
beast::streambuf sb; auto const s = to_string(jr);
Json::stream(jr, auto const n = s.length();
[&sb](auto const p, auto const n) beast::streambuf sb(n);
{
sb.commit(boost::asio::buffer_copy( sb.commit(boost::asio::buffer_copy(
sb.prepare(n), boost::asio::buffer(p, n))); sb.prepare(n), boost::asio::buffer(s.c_str(), n)));
});
JLOG(m_journal.trace())
<< "Websocket sending '" << jr << "'";
session->send(std::make_shared< session->send(std::make_shared<
StreambufWSMsg<decltype(sb)>>(std::move(sb))); StreambufWSMsg<decltype(sb)>>(std::move(sb)));
session->complete(); session->complete();