From 7065ee909ee84dad90dcb75c9b88be1988b0a46d Mon Sep 17 00:00:00 2001 From: zcy <290198252@qq.com> Date: Mon, 14 Mar 2022 00:05:00 +0800 Subject: [PATCH] no message --- examples/proto_debuger/base_form.cpp | 22 +++++++++++++++++-- examples/proto_debuger/websocket_server.cpp | 12 ++++++++++ examples/proto_debuger/websocket_server.h | 2 ++ .../proto_debuger/websocket_server_form.cpp | 16 +++++++++++--- .../proto_debuger/websocket_server_form.h | 1 + 5 files changed, 48 insertions(+), 5 deletions(-) diff --git a/examples/proto_debuger/base_form.cpp b/examples/proto_debuger/base_form.cpp index 0d6289a2..c391c089 100644 --- a/examples/proto_debuger/base_form.cpp +++ b/examples/proto_debuger/base_form.cpp @@ -172,9 +172,7 @@ LRESULT BasicForm::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) //delete mRightShow; mRightShow = nullptr; } - if (uMsg == WM_USER_POS_CHANGED) { - } if (uMsg == WM_ADD_TCPCLIENT_MONITOR) { TcpClientInfo* info = (TcpClientInfo*)wParam; TcpClientLibevent* cli = (TcpClientLibevent*)lParam; @@ -383,6 +381,26 @@ LRESULT BasicForm::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam) ); mMonitorNewSelect->Close(); } + if (uMsg == WM_ADD_WEBSOCKET_SERVER_CLOSE) { + wprintf(L"close %s\r\n", ((wstring*)wParam)->c_str()); + mRightShow->SetVisible(false); + mRightSide->RemoveAll(); + + mWebsocketServerForm.erase(*(wstring*)(wParam)); + int cnt = mMonitor->GetRootNode()->GetChildNode(6)->GetChildNodeCount(); + ui::TreeNode* p = nullptr; + for (int i = 0; i < cnt; i++) { + if (mMonitor->GetRootNode()->GetChildNode(6)->GetChildNode(i)->GetText() + == *(wstring*)(wParam)) { + p = mMonitor->GetRootNode()->GetChildNode(6)->GetChildNode(i); + break; + } + } + if (nullptr != p) + mMonitor->GetRootNode()->GetChildNode(6)->RemoveChildNode(p); + //delete mRightShow; + mRightShow = nullptr; + } if (uMsg == WM_ADD_UDP_MONITOR) { printf("add udp monitor"); wchar_t pdata[100] = L"\0"; diff --git a/examples/proto_debuger/websocket_server.cpp b/examples/proto_debuger/websocket_server.cpp index 40500322..6bc9c7e3 100644 --- a/examples/proto_debuger/websocket_server.cpp +++ b/examples/proto_debuger/websocket_server.cpp @@ -98,6 +98,18 @@ WebsocketServer::WebsocketServer(std::string server,uint32_t port){ }); } +WebsocketServer::~WebsocketServer() +{ + /* + this->m_status = WebsocketClient::STOP; + if (m_tls) + m_client_tls.stop(); + else + m_client.stop(); + m_thread->join(); + */ +} + int WebsocketServer::SendData(uint32_t fd,const char* dat,int len, websocketpp::frame::opcode::value op){ diff --git a/examples/proto_debuger/websocket_server.h b/examples/proto_debuger/websocket_server.h index a2527e9d..5f5c08dc 100644 --- a/examples/proto_debuger/websocket_server.h +++ b/examples/proto_debuger/websocket_server.h @@ -18,6 +18,7 @@ typedef WsServer::message_ptr message_ptr; class WebsocketServer { public: + typedef std::function OnNewConnectionHanlder; typedef std::function OnConnectionCloseHanlder; typedef std::function OnMessageHanlder; @@ -25,6 +26,7 @@ public: std::string Url(); uint32_t Port(); WebsocketServer(std::string server,uint32_t port); + ~WebsocketServer(); friend void on_new_connection(WebsocketServer* s, websocketpp::connection_hdl hdl); friend void on_message(WebsocketServer* s, websocketpp::connection_hdl hdl, message_ptr msg); friend void on_connection_close(WebsocketServer* s, websocketpp::connection_hdl hdl); diff --git a/examples/proto_debuger/websocket_server_form.cpp b/examples/proto_debuger/websocket_server_form.cpp index ffb7e1a5..20d9a82c 100644 --- a/examples/proto_debuger/websocket_server_form.cpp +++ b/examples/proto_debuger/websocket_server_form.cpp @@ -26,6 +26,13 @@ WebsocketServerForm::WebsocketServerForm(ui::Window* hwnd, string url, this->mLua->BindFunction("showdata", LuaShowData); } +WebsocketServerForm::~WebsocketServerForm() +{ + std::cout << "~WebsocketServerForm\r\n"; + std::cout << "~WebsocketServerForm\r\n"; + +} + void WebsocketServerForm::Init() { ui::ChildBox::Init(); @@ -68,10 +75,13 @@ void WebsocketServerForm::Init() m_btn_close_form = dynamic_cast(FindSubControl(L"btn_close_uart")); if (nullptr != m_btn_close_form) { - m_btn_close_form->AttachClick([this](ui::EventArgs *ev) { - + m_btn_close_form->AttachClick([this](ui::EventArgs* ev) { + wstring* name = new wstring(this->GetName()); + ::PostMessage(this->GetWindow()->GetHWND(), + WM_ADD_WEBSOCKET_SERVER_CLOSE, (WPARAM)name, 0); return true; - }); + }); + } if (nullptr != m_btn_save_lua) m_btn_save_lua->AttachClick( [this](ui::EventArgs* ev) { diff --git a/examples/proto_debuger/websocket_server_form.h b/examples/proto_debuger/websocket_server_form.h index 919fbff0..bd077ee4 100644 --- a/examples/proto_debuger/websocket_server_form.h +++ b/examples/proto_debuger/websocket_server_form.h @@ -26,6 +26,7 @@ class WebsocketServerForm : public: WebsocketServerForm(ui::Window* hwnd, string url, WebsocketServer* server); + ~WebsocketServerForm(); virtual void Init() override; LuaDelegate* LuaVM(); void ShowDataInEdit(const char*) ;