我正在像这样设置消息处理程序并且它有效。
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/