// Take ownership of the socket
 session(tcp::socket socket, ssl::context& ctx)
     : socket_(std::move(socket))
     , ws_(socket_, ctx)
     , strand_(ws_.get_executor())
 {
 }
 // Take ownership of the socket
 explicit
 session(tcp::socket socket)
     : ws_(std::move(socket))
     , strand_(ws_.get_executor())
 {
 }