zhaomingwork
2023-06-15 2962dc83060d948656d0b1e52d1e67ad07afb4f5
For cpp ws client long file not exited bug (#631)

* fix cpp ws client not exit when finished problem

* add count for multiple files
1个文件已修改
18 ■■■■ 已修改文件
funasr/runtime/websocket/funasr-ws-client.cpp 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
funasr/runtime/websocket/funasr-ws-client.cpp
@@ -106,7 +106,16 @@
        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();
                    }
                }
        }
    }
@@ -140,11 +149,9 @@
            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();
        }
        asio_thread.join();
    }
    // The open handler will signal that we are ready to start sending data
@@ -267,6 +274,7 @@
    websocketpp::lib::mutex m_lock;
    bool m_open;
    bool m_done;
    int total_num=0;
};
int main(int argc, char* argv[]) {