从关闭消息中检索 code/reason
Retrieve the code/reason from a close message
我想从关闭消息中检索代码和原因。我已经向 set_close_handler
注册了一个处理程序,但它没有获得有效负载。另外,我发现 websocketpp::close::extract_code
和 websocketpp::close::extract_reason
带有有效负载和 return 相关部分。关闭有效负载是否存储在某处? connection_ptr
中的最后一个 code/reason 可用吗?
连接对象为此目的有两个访问器方法:
close::status::value get_remote_close_code() const;
std::string const & get_remote_close_reason() const;
on_close方法是用connection_hdl调用的,所以需要调用get_con_from_hdl()获取连接指针。这是一个例子:
void chat_server::on_close(connection_hdl hdl) {
try {
server::connection_ptr cp = m_server.get_con_from_hdl(hdl);
websocketpp::close::status::value ccode = cp->get_remote_close_code();
std::cout << "Closed connection. code " << ccode << " ["
<< cp->get_remote_close_reason() << "]" << std::endl;
} catch (const websocketpp::lib::error_code& e) {
std::cout << __func__ << " failed because: " << e << "(" << e.message() << ")"
<< std::endl;
} catch (std::exception& e) {
std::cout << e.what() << std::endl;
}
}
我想从关闭消息中检索代码和原因。我已经向 set_close_handler
注册了一个处理程序,但它没有获得有效负载。另外,我发现 websocketpp::close::extract_code
和 websocketpp::close::extract_reason
带有有效负载和 return 相关部分。关闭有效负载是否存储在某处? connection_ptr
中的最后一个 code/reason 可用吗?
连接对象为此目的有两个访问器方法:
close::status::value get_remote_close_code() const;
std::string const & get_remote_close_reason() const;
on_close方法是用connection_hdl调用的,所以需要调用get_con_from_hdl()获取连接指针。这是一个例子:
void chat_server::on_close(connection_hdl hdl) {
try {
server::connection_ptr cp = m_server.get_con_from_hdl(hdl);
websocketpp::close::status::value ccode = cp->get_remote_close_code();
std::cout << "Closed connection. code " << ccode << " ["
<< cp->get_remote_close_reason() << "]" << std::endl;
} catch (const websocketpp::lib::error_code& e) {
std::cout << __func__ << " failed because: " << e << "(" << e.message() << ")"
<< std::endl;
} catch (std::exception& e) {
std::cout << e.what() << std::endl;
}
}