首页 > 解决方案 > websocketpp | 无法设置 on_close/打开处理程序

问题描述

当我尝试设置 set_close_handler 时,我得到了这个异常:

rm -rf build/*.o main command_prompt
rm -rf *.o main command_prompt
g++ -o build//main.o -std=c++11 -DRASPBERRY_PI -DBCM2835_NO_DELAY_COMPATIBILITY -D__BASEFILE__=\"build/main\" -c -Ilibs/lmic/src -Ilibs/  main.cpp
main.cpp: In function ‘void on_close(websocketpp::connection_hdl)’:
main.cpp:75:3: error: ‘m_connections’ was not declared in this scope
   m_connections.erase(hdl);
   ^~~~~~~~~~~~~
main.cpp: In function ‘int main()’:
main.cpp:226:70: error: expected primary-expression before ‘)’ token
       echo_server.set_close_handler(bind(&on_close,&echo_server,::_1,));
                                                                      ^
Makefile:29: recipe for target 'build/main.o' failed
make: *** [build/main.o] Error 1
rebuild.sh: line 3: ./main: No such file or directory

我已经尝试在 on_close 事件中使用参数和客户端指针,但这并没有改变任何事情。我已成功设置 on 消息处理程序,但是当我尝试设置 on open 处理程序时,它会引发相同的异常。

void on_close(websocketpp::connection_hdl hdl)

}

echo_server.set_close_handler(bind(&on_close,&echo_server,::_1,));

标签: c++socketswebsocket

解决方案


echo_server.set_close_handler(bind(&on_close,&echo_server,::_1, ));
                                                               ^
                                            missing an argument here                    

推荐阅读