游雁
2023-05-24 9dfd39f40f94df0076d67b7d081c06eea5ed5dc0
funasr/runtime/websocket/websocketsrv.h
@@ -30,7 +30,7 @@
#include "asio.hpp"
#include "com-define.h"
#include "libfunasrapi.h"
#include "funasrruntime.h"
#include "nlohmann/json.hpp"
#include "tclap/CmdLine.h"
typedef websocketpp::server<websocketpp::config::asio> server;
@@ -45,6 +45,11 @@
  std::string msg;
  float snippet_time;
} FUNASR_RECOG_RESULT;
typedef struct {
  nlohmann::json msg;
  std::shared_ptr<std::vector<char>> samples;
} FUNASR_MESSAGE;
class WebSocketServer {
 public:
@@ -67,7 +72,7 @@
    server_->clear_access_channels(websocketpp::log::alevel::all);
  }
  void do_decoder(const std::vector<char>& buffer,
                  websocketpp::connection_hdl& hdl);
                  websocketpp::connection_hdl& hdl, const nlohmann::json& msg);
  void initAsr(std::map<std::string, std::string>& model_path, int thread_num);
  void on_message(websocketpp::connection_hdl hdl, message_ptr msg);
@@ -84,9 +89,10 @@
  // use map to keep the received samples data from one connection in offline
  // engine. if for online engline, a data struct is needed(TODO)
  std::map<websocketpp::connection_hdl, std::shared_ptr<std::vector<char>>,
  std::map<websocketpp::connection_hdl, std::shared_ptr<FUNASR_MESSAGE>,
           std::owner_less<websocketpp::connection_hdl>>
      sample_map;
      data_map;
  websocketpp::lib::mutex m_lock;  // mutex for sample_map
};