Przeglądaj źródła

optimize json parse

雾聪 2 lat temu
rodzic
commit
b8d7c62b8c

+ 8 - 1
funasr/runtime/websocket/bin/websocket-server-2pass.cpp

@@ -356,7 +356,14 @@ void WebSocketServer::on_message(websocketpp::connection_hdl hdl,
   unique_lock guard_decoder(*(thread_lock_p)); // mutex for one connection
   switch (msg->get_opcode()) {
     case websocketpp::frame::opcode::text: {
-      nlohmann::json jsonresult = nlohmann::json::parse(payload);
+      nlohmann::json jsonresult;
+      try{
+        jsonresult = nlohmann::json::parse(payload);
+      }catch (std::exception const &e)
+      {
+        LOG(ERROR)<<e.what();
+        break;
+      }
 
       if (jsonresult.contains("wav_name")) {
         msg_data->msg["wav_name"] = jsonresult["wav_name"];

+ 9 - 1
funasr/runtime/websocket/bin/websocket-server.cpp

@@ -256,7 +256,15 @@ void WebSocketServer::on_message(websocketpp::connection_hdl hdl,
   unique_lock guard_decoder(*(thread_lock_p)); // mutex for one connection
   switch (msg->get_opcode()) {
     case websocketpp::frame::opcode::text: {
-      nlohmann::json jsonresult = nlohmann::json::parse(payload);
+      nlohmann::json jsonresult;
+      try{
+        jsonresult = nlohmann::json::parse(payload);
+      }catch (std::exception const &e)
+      {
+        LOG(ERROR)<<e.what();
+        break;
+      }
+
       if (jsonresult["wav_name"] != nullptr) {
         msg_data->msg["wav_name"] = jsonresult["wav_name"];
       }