【发布时间】:2021-01-29 21:13:15
【问题描述】:
我正在使用 boost beast 1.74.0。在另一个线程中,我尝试关闭 websocket,但代码在“acceptor.accept(socket,endpoint)”处被破坏,并且在调用关闭后我收到“信号:SIG32(实时事件 32)”。
从代码部分监听连接,我需要更改什么才能正确中断接受服务?
...
_acceptor = &acceptor;
_keepAlive = true;
while (_keepAlive) {
tcp::socket socket{ioc};
// Block until we get a connection
acceptor.accept(socket, endpoint);
// Launch the session, transferring ownership of the socket
std::thread(
&WebSocketServer::doSession,
std::move(socket),
this,
this,
getHeaderServer()
).detach();
}
关闭另一个线程调用的函数
void WebSocketServer::close() {
if (_acceptor != nullptr) this->close();
_keepAlive = false;
}
【问题讨论】:
标签: c++ boost websocket boost-beast