From a6f12071ffff2535836b5a32dce59931afe4a325 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 12 Aug 2024 18:13:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9B=B8=E5=85=B3=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appsrc/appbase/dep.hpp | 1 + .../iflytop_front_end_service.cpp | 18 +++++++++++++----- appsrc/service/test_page_mgr_service.cpp | 20 +++++++++++++++++++- appsrc/service/test_page_mgr_service.hpp | 1 + 4 files changed, 34 insertions(+), 6 deletions(-) diff --git a/appsrc/appbase/dep.hpp b/appsrc/appbase/dep.hpp index 499ed79..bfbf1dd 100644 --- a/appsrc/appbase/dep.hpp +++ b/appsrc/appbase/dep.hpp @@ -8,6 +8,7 @@ #include "gconfig.hpp" #include "iflytop/core/components/jobs/work_queue.hpp" #include "iflytop/core/components/stringutils.hpp" +#include "iflytop/core/utils/uuid/uuid.hpp" #include "project_setting.hpp" // #include "app_protocols/apperrorcode/apperrorcode.hpp" diff --git a/appsrc/baseservice/iflytop_front_end_service/iflytop_front_end_service.cpp b/appsrc/baseservice/iflytop_front_end_service/iflytop_front_end_service.cpp index c73a2ec..96e3ef4 100644 --- a/appsrc/baseservice/iflytop_front_end_service/iflytop_front_end_service.cpp +++ b/appsrc/baseservice/iflytop_front_end_service/iflytop_front_end_service.cpp @@ -68,7 +68,9 @@ void IflytopFrontEndService::sendReport(json& report) { * @brief 广播消息给所有连接的客户端 */ - report["timeStamp"] = duration_cast(system_clock::now().time_since_epoch()).count(); + report["timeStamp"] = duration_cast(system_clock::now().time_since_epoch()).count(); + report["messageId"] = UUID().toString(); + report["messageType"] = "Report"; logger->debug("uplink msg: {}", report.dump()); auto clients = m_reportServer->getClients(); @@ -77,6 +79,12 @@ void IflytopFrontEndService::sendReport(json& report) { each->sendText(report.dump()); } } + auto serverClients = m_server->getClients(); + for (auto& each : serverClients) { + if (each) { + each->sendText(report.dump()); + } + } } void IflytopFrontEndService::onMessageCallback(weak_ptr webSocket, shared_ptr connectionState, const ix::WebSocketMessagePtr& msg) { @@ -120,9 +128,10 @@ void IflytopFrontEndService::processRxMessage(weak_ptr webSocket, str json command = json::parse(msgtext); json receipt; - receipt["messageId"] = command["messageId"]; - receipt["ackcode"] = 0; - receipt["timeStamp"] = duration_cast(system_clock::now().time_since_epoch()).count(); + receipt["messageId"] = command["messageId"]; + receipt["ackcode"] = 0; + receipt["messageType"] = "Ack"; + receipt["timeStamp"] = duration_cast(system_clock::now().time_since_epoch()).count(); try { onMessage(webSocket, command, receipt); ws->sendText(receipt.dump(1)); @@ -163,7 +172,6 @@ void IflytopFrontEndService::processRxMessage(weak_ptr webSocket, str ws->sendText(receipt.dump(1)); } - } catch (const std::exception& e) { logger->error("m_iflytopWSService:onMessag,parse json failed,exception:{},{}", e.what(), msgtext); return; diff --git a/appsrc/service/test_page_mgr_service.cpp b/appsrc/service/test_page_mgr_service.cpp index 8ab08a5..c6edc70 100644 --- a/appsrc/service/test_page_mgr_service.cpp +++ b/appsrc/service/test_page_mgr_service.cpp @@ -8,6 +8,7 @@ void TestPageMgrService::initialize() { REGFN(TestPageMgrService, getTestPageCfgInfo); REGFN(TestPageMgrService, onButton); REGFN(TestPageMgrService, readState); + REGFN(TestPageMgrService, triggerOnePrompt); } void TestPageMgrService::getTestPageCfgInfo(shared_ptr cxt) { @@ -93,4 +94,21 @@ void TestPageMgrService::readState(shared_ptr cxt) { } else if (stateName == "acCurrent") { cxt->content["value"] = "10"; } -} \ No newline at end of file +} + +void TestPageMgrService::triggerOnePrompt(shared_ptr cxt) { + // { + // "messageId":"1234", + // "timeStamp":1112312, + // "messageType":"Report", + // "eventType":"Prompt" + // "content":{ + // "message":"测试提示信息" + // } + // } + + json report; + report["eventType"] = "Prompt"; + report["content"]["message"] = "测试提示信息....."; + GET_SERVICE(IflytopFrontEndService)->sendReport(report); +} diff --git a/appsrc/service/test_page_mgr_service.hpp b/appsrc/service/test_page_mgr_service.hpp index 7d1f0f2..0d6965b 100644 --- a/appsrc/service/test_page_mgr_service.hpp +++ b/appsrc/service/test_page_mgr_service.hpp @@ -26,6 +26,7 @@ class TestPageMgrService : public enable_shared_from_this { void getTestPageCfgInfo(shared_ptr cxt); void onButton(shared_ptr cxt); void readState(shared_ptr cxt); + void triggerOnePrompt(shared_ptr cxt); private: };