For cpp ws client long file not exited bug (#631)

* fix cpp ws client not exit when finished problem

* add count for multiple files
This commit is contained in:
zhaomingwork 2023-06-15 11:34:35 +08:00 committed by GitHub
parent 385a421ced
commit 2962dc8306
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -106,7 +106,16 @@ class WebsocketClient {
const std::string& payload = msg->get_payload();
switch (msg->get_opcode()) {
case websocketpp::frame::opcode::text:
LOG(INFO)<<"on_message = " << payload;
total_num=total_num+1;
LOG(INFO)<<total_num<<",on_message = " << payload;
if((total_num+1)==wav_index)
{
websocketpp::lib::error_code ec;
m_client.close(m_hdl, websocketpp::close::status::going_away, "", ec);
if (ec){
LOG(ERROR)<< "Error closing connection " << ec.message();
}
}
}
}
@ -139,12 +148,10 @@ class WebsocketClient {
}
send_wav_data(wav_list[i], wav_ids[i]);
}
WaitABit();
m_client.close(m_hdl, websocketpp::close::status::going_away, "", ec);
if (ec){
LOG(ERROR)<< "Error closing connection " << ec.message();
}
WaitABit();
asio_thread.join();
}
// The open handler will signal that we are ready to start sending data
@ -267,6 +274,7 @@ class WebsocketClient {
websocketpp::lib::mutex m_lock;
bool m_open;
bool m_done;
int total_num=0;
};
int main(int argc, char* argv[]) {