2016-05-14 3 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)); 
関連する問題