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

标签 c++ websocket

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

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/

相关文章:

c++ - C++11 中流的 vector

c++ - 派生数据类型

websocket - serviceworker 和 web 推送消息的关系

javascript - 在socket.io中搜索对手

c++ - 是否可以在 X86 处理器上自动加载和存储?

c++ - 如何从 Lua 中提取 C++ 对象指针

javascript - Python 套接字脚本 <-> HTML 客户端

node.js - nodejs 作为 websocket 客户端

javascript - 从 React 订阅 Azure Pub Sub Web 服务会导致未处理的拒绝(TypeError)

c++ - 获取定义为父类的子类输出子函数