我正在尝试创建一个简单的静态类库,以将 WebSocket 的使用与我的其余代码分离。创建它可以让我轻松切换 WebSocket 库(我目前正在使用 cpprestsdk),而无需更改我的代码(或其底层逻辑),基于将在不久的将来执行的基准测试。
在下面的代码中,我试图有一个回调openConnection()
:
class WebSocket
{
websocket_callback_client wsClient;
void openConnection(void (*ptr)(std::string response),std::string _url)
{
wsClient.connect(_url).then([](){ });
wsClient.set_message_handler([](websocket_incoming_message msg)
{
ptr(msg.extract_string().get());
});
}
};
这看起来显然是错误的,因为编译器会抛出错误:
'ptr' 未被捕获
但这就是我想要实现的目标。
我怎样才能做到这一点?