websocketpp |无法设置 on_close/打开处理程序
Posted
技术标签:
【中文标题】websocketpp |无法设置 on_close/打开处理程序【英文标题】:websocketpp | Can't set on_close/ open handler 【发布时间】:2019-10-06 12:22:34 【问题描述】:当我尝试设置 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,));
【问题讨论】:
【参考方案1】:包含这一行应该可以解决您的问题:
using websocketpp::lib::placeholders::_1;
【讨论】:
【参考方案2】:echo_server.set_close_handler(bind(&on_close,&echo_server,::_1, ));
^
missing an argument here
【讨论】:
哎呀,抱歉在发布前忘记删除它,这不是异常的原因。以上是关于websocketpp |无法设置 on_close/打开处理程序的主要内容,如果未能解决你的问题,请参考以下文章
未设置 set_tls_init_handler 时 websocketpp 如何处理连接?
从 websocketpp 中的 connection 或 connection_ptr 获取本机套接字描述符?