网络插座 |无法设置on_close/打开处理程序

websocketpp | Can't set on_close/ open handler

本文关键字:close 程序 处理 on 插座 设置 网络      更新时间:2023-10-16

当我尝试设置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 事件中使用参数和客户端指针,但这并没有改变任何事情。 我已经成功设置了打开消息处理程序,但是当我尝试设置打开处理程序时,它会抛出相同的异常。

void on_close(websocketpp::connection_hdl hdl)
}
echo_server.set_close_handler(bind(&on_close,&echo_server,::_1,));

包含此行应该可以解决您的问题:

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