2016-05-14 93 views
0

我正在設置這樣的消息處理程序,它的工作原理。Websocketpp設置消息處理程序

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類中。

回答

1

否則像這樣解決了這個問題:

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