我正在尝试编写一个 https flex 服务器,它可以根据升级请求升级到 websocket。https 类进行 ssl 握手std::shared_ptr<boost::beast::ssl_stream<boost::beast::tcp_stream>> m_ptls_stream
现在我需要将此流传输到 websocket 类并将其转换为类型
std::shared_ptr<boost::beast::websocket::stream<
boost::beast::ssl_stream<boost::beast::tcp_stream>>>
但是由于某种原因,websocket 流的构造函数不接受共享指针,并且我无法取消引用 ssl_stream shared_ptr,因为我得到了复制构造函数被删除的错误
严重性代码描述项目文件行抑制状态错误 C2280 'boost::beast::ssl_streamboost::beast::tcp_stream::ssl_stream(const boost::beast::ssl_streamboost::beast::tcp_stream &)':试图引用一个删除功能 D:\Work\remote_pc\out\build\x64-Debug\remote_pc D:\Work\boost_1_73_0\boost\asio\impl\executor.hpp 218
void async_ws_client::add_stream(std::shared_ptr<boost::beast::ssl_stream<boost::beast::tcp_stream>>&& ptls_stream)
{
if (m_ptls_context)
{
m_p_wss_stream = std::make_shared<
boost::beast::websocket::stream<
boost::beast::ssl_stream<
boost::beast::tcp_stream>>>(std::move(*ptls_stream), *m_ptls_context);
}
}
感觉就像我错过了一些东西,几天都无法弄清楚。请帮忙..!!
另外,如果我这样做
m_p_wss_stream = std::make_shared<
boost::beast::websocket::stream<
boost::beast::ssl_stream<
boost::beast::tcp_stream>>>(std::move(ptls_stream->next_layer()),
*m_ptls_context);
套接字抛出错误:当我在创建它后对流执行 async_accept() 时未初始化。