gpt4 book ai didi

c++ - Websocketpp 设置消息处理程序

转载 作者:行者123 更新时间:2023-11-28 05:40:26 24 4
gpt4 key购买 nike

我正在像这样设置消息处理程序并且它有效。

srv.set_message_handler(&on_message);

// This works
void on_message(websocketpp::connection_hdl hdl, server::message_ptr msg_ptr)
{

}

但是,当我创建一个类并将 on_message 函数放入该类并尝试 set_message_handler 时,我收到错误消息。本例中的 srv 变量是一个类成员。像这样:

class Server
{
public:
typedef websocketpp::server<websocketpp::config::asio> server;

void on_message(websocketpp::connection_hdl hdl,
server::message_ptr msg_ptr);
private:
server srv;
};

错误:

C:\Users\Shiro\ClionProjects\Thesis\source_files\Server.cpp: In constructor 'Server::Server(short unsigned int, const Graph&, const Graph&)':
C:\Users\Shiro\ClionProjects\Thesis\source_files\Server.cpp:10:37: error: no matching function for call to 'websocketpp::server<websocketpp::config::asio>::set_message_handler(void (Server::*)(Server::connection_handler, Server::message_ptr))'
s.set_message_handler(&on_message);
^

我该如何解决这个问题?我希望我的 on_message 函数位于 Server 类中。

最佳答案

这样做解决了问题:

// using boost::bind
server.set_message_handler(bind(&on_message, this, ::_1, ::_2));

关于c++ - Websocketpp 设置消息处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37232669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com