From d63d20b17db5f8de2643f77264d7d0866d774797 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Tue, 28 Oct 2025 00:32:43 -0400 Subject: [PATCH 1/9] On branch websocket_fixes Changes to be committed: modified: src/mtconnect/sink/rest_sink/rest_service.cpp modified: src/mtconnect/sink/rest_sink/websocket_session.hpp --- src/mtconnect/sink/rest_sink/rest_service.cpp | 9 ++++-- .../sink/rest_sink/websocket_session.hpp | 29 ++++++++++++++++--- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index 46775087c..d3055499d 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -568,9 +568,11 @@ namespace mtconnect { "type={string}&removed={bool:false}&" "count={integer:100}&device={string}&pretty={bool:false}&format={string}"); m_server->addRouting({boost::beast::http::verb::get, "/assets?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets"); + .document("MTConnect assets request", "Returns up to `count` assets") + .command("assets"); m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) - .document("MTConnect asset request", "Returns up to `count` assets"); + .document("MTConnect asset request", "Returns up to `count` assets") + .command("asset"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) @@ -578,7 +580,8 @@ namespace mtconnect { m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) .document( "MTConnect assets request", - "Returns a set assets identified by asset ids `asset` separated by semi-colon (;)"); + "Returns a set assets identified by asset ids `asset` separated by semi-colon (;)") + .command("assetIds"); m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) .document("MTConnect asset request", "Returns a set of assets identified by asset ids `asset` separated by " diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index f43a425e2..ca785afe1 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -357,9 +357,11 @@ namespace mtconnect::sink::rest_sink { #ifdef __GOSave__ #define GetObject __GOSave__ #endif - + LOG(debug) << "WebsocketSession::parseRequest parse objects"; for (auto &it : object) { + LOG(debug) << "WebsocketSession::parseRequest object name: "<< it.name.GetString(); + switch (it.value.GetType()) { case rapidjson::kNullType: @@ -380,7 +382,7 @@ namespace mtconnect::sink::rest_sink { case rapidjson::kStringType: request->m_parameters.emplace( make_pair(it.name.GetString(), ParameterValue(string(it.value.GetString())))); - + LOG(debug) << "WebsocketSession::parseRequest object value: "<< it.value.GetString(); break; case rapidjson::kNumberType: if (it.value.IsInt()) @@ -401,7 +403,16 @@ namespace mtconnect::sink::rest_sink { break; } - } + } + } + + LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); + LOG(debug) << "WebsocketSession::parseRequest assetIds: " << *request->parameter("assetIds"); + + string value = *request->parameter("assetIds"); + if (!value.empty() && !(value == "asset")) { + request->m_parameters["request"] = "assetIds"; + LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); } return request; @@ -410,7 +421,15 @@ namespace mtconnect::sink::rest_sink { bool dispatchRequest(RequestPtr &&request) { using namespace std; - + // LOG(debug) << "WebsocketSession::dispatchRequest command: " << *request->parameter("request"); + // LOG(debug) << "WebsocketSession::dispatchRequest assetIds: " << *request->parameter("assetIds"); + // string value = *request->parameter("assetIds"); + // if (!value.empty() && !(value == "asset")) { + // request->m_parameters.emplace("request", "assetIds"); + // LOG(debug) << "WebsocketSession::dispatchRequest command: " << *request->parameter("request"); + // } + + if (request->m_parameters.count("id") > 0) { auto &v = request->m_parameters["id"]; @@ -493,6 +512,8 @@ namespace mtconnect::sink::rest_sink { try { auto request = parseRequest(buffer); + //auto command = request->m_parameters["request"]; + LOG(debug) << "WebsocketSession::onRead parsed request: " << *request->m_command; if (!request || !dispatchRequest(std::move(request))) { std::stringstream txt; From fff8043a24fe85795aaa5d7ff39d08baa992edbd Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Wed, 29 Oct 2025 19:30:32 -0400 Subject: [PATCH 2/9] On branch websocket_fixes Changes to be committed: modified: ../src/mtconnect/sink/rest_sink/websocket_session.hpp --- src/mtconnect/sink/rest_sink/websocket_session.hpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index ca785afe1..52b25ca4c 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -409,11 +409,11 @@ namespace mtconnect::sink::rest_sink { LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); LOG(debug) << "WebsocketSession::parseRequest assetIds: " << *request->parameter("assetIds"); - string value = *request->parameter("assetIds"); - if (!value.empty() && !(value == "asset")) { - request->m_parameters["request"] = "assetIds"; - LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); - } + // string value = *request->parameter("assetIds"); + // if (!value.empty() && !(value == "asset")) { + // request->m_parameters["request"] = "assetIds"; + // LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); + // } return request; } From 0711688d8042c3447dbd277bd4972d6f1f9961a0 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Mon, 3 Nov 2025 14:51:39 -0500 Subject: [PATCH 3/9] On branch websocket_fixes Changes to be committed: modified: ../src/mtconnect/sink/rest_sink/rest_service.cpp modified: ../src/mtconnect/sink/rest_sink/websocket_session.hpp Modified websocket_session::parseRequest to replace the asset or assets command when assetIds is equal to either asset or assets with the command assetIds. Modified rest_service::createAssetRoutings adding the assetIds command to the ihandler routing. There are inconsistenties with the parsing of the asset ideas that result in error that hangs the websocet client and the agents websocket. The agenst websocket seems to reset after an http request. --- src/mtconnect/sink/rest_sink/rest_service.cpp | 8 ++++---- .../sink/rest_sink/websocket_session.hpp | 15 +++++++++------ 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index d3055499d..eec2d86dc 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -577,15 +577,15 @@ namespace mtconnect { .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) .document("MTConnect asset request", "Returns up to `count` assets for deivce `device`"); + m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) + .document("MTConnect asset request", + "Returns a set of assets identified by asset ids `asset` separated by " + "semi-colon (;)"); m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) .document( "MTConnect assets request", "Returns a set assets identified by asset ids `asset` separated by semi-colon (;)") .command("assetIds"); - m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) - .document("MTConnect asset request", - "Returns a set of assets identified by asset ids `asset` separated by " - "semi-colon (;)"); if (m_server->arePutsAllowed()) { diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index 52b25ca4c..3f94858cf 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -348,6 +348,7 @@ namespace mtconnect::sink::rest_sink { request->m_verb = beast::http::verb::get; request->m_parameters.clear(); + //LOG(debug) << "WebsocketSession::parseRequest after clear assetIds: " << *request->parameter("assetIds"); #ifdef GetObject #define __GOSave__ GetObject #undef GetObject @@ -382,7 +383,7 @@ namespace mtconnect::sink::rest_sink { case rapidjson::kStringType: request->m_parameters.emplace( make_pair(it.name.GetString(), ParameterValue(string(it.value.GetString())))); - LOG(debug) << "WebsocketSession::parseRequest object value: "<< it.value.GetString(); + LOG(debug) << "WebsocketSession::parseRequest name: "<< it.value.GetString() << ", object value: "<< it.value.GetString(); break; case rapidjson::kNumberType: if (it.value.IsInt()) @@ -409,11 +410,13 @@ namespace mtconnect::sink::rest_sink { LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); LOG(debug) << "WebsocketSession::parseRequest assetIds: " << *request->parameter("assetIds"); - // string value = *request->parameter("assetIds"); - // if (!value.empty() && !(value == "asset")) { - // request->m_parameters["request"] = "assetIds"; - // LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); - // } + string value = *request->parameter("assetIds"); + LOG(debug) << "WebsocketSession::parseRequest assetIds value = " << value; + + if (!(value == "asset")) { + request->m_parameters["request"] = "assetIds"; + LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); + } return request; } From 977369e055852f557bca0ee981ff2456af32ab42 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Wed, 5 Nov 2025 16:51:13 -0500 Subject: [PATCH 4/9] On branch websocket-test Changes to be committed: modified: ../src/mtconnect/sink/rest_sink/rest_service.cpp Modified websocket_service::CreateAssetRoute to .command(asset,assets) --- src/mtconnect/sink/rest_sink/rest_service.cpp | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index 46775087c..241280c05 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -567,14 +567,25 @@ namespace mtconnect { string qp( "type={string}&removed={bool:false}&" "count={integer:100}&device={string}&pretty={bool:false}&format={string}"); - m_server->addRouting({boost::beast::http::verb::get, "/assets?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets"); - m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) - .document("MTConnect asset request", "Returns up to `count` assets"); - m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`"); - m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) - .document("MTConnect asset request", "Returns up to `count` assets for deivce `device`"); + for (const auto &asset : list {"asset", "assets"}) + { + + m_server->addRouting({boost::beast::http::verb::get, "/" + asset + "?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets"); + m_server->addRouting({boost::beast::http::verb::get, "/" + asset + "?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets") + .command(asset); + // m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) + // .document("MTConnect asset request", "Returns up to `count` assets"); + m_server->addRouting({boost::beast::http::verb::get, "/{device}/" + asset + "?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`"); + m_server->addRouting({boost::beast::http::verb::get, "/{device}/" + asset + "?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") + .command(asset); + // m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) + // .document("MTConnect asset request", "Returns up to `count` assets for deivce `device`"); + } + m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) .document( "MTConnect assets request", From ea133e06a2bd619f7320ab3bcd6b3593f35c6c66 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Fri, 14 Nov 2025 11:54:27 -0500 Subject: [PATCH 5/9] On branch websocket-test Changes to be committed: modified: src/mtconnect/sink/rest_sink/rest_service.cpp added asset and assets commands to asset routinng. --- src/mtconnect/sink/rest_sink/rest_service.cpp | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index 241280c05..53133cf94 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -531,8 +531,8 @@ namespace mtconnect { request->m_request = "MTConnectAssets"; respond(session, - assetRequest(printer, count, removed, request->parameter("type"), - request->parameter("device"), pretty, request->m_requestId), + assetRequest(printer, count, removed, request->parameter("type"), + request->parameter("device"), pretty, request->m_requestId), request->m_requestId); return true; }; @@ -566,22 +566,23 @@ namespace mtconnect { string qp( "type={string}&removed={bool:false}&" - "count={integer:100}&device={string}&pretty={bool:false}&format={string}"); - for (const auto &asset : list {"asset", "assets"}) + "count={integer:100}&deviceType={string}&pretty={bool:false}&format={string}"); + //for (const auto &asset : list {"asset", "assets"}) { - m_server->addRouting({boost::beast::http::verb::get, "/" + asset + "?" + qp, handler}) + m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets"); - m_server->addRouting({boost::beast::http::verb::get, "/" + asset + "?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets") - .command(asset); + m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") + .command("asset"); + + m_server->addRouting({boost::beast::http::verb::get, "/assets?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets"); + m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) + .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") + .command("assets"); // m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) // .document("MTConnect asset request", "Returns up to `count` assets"); - m_server->addRouting({boost::beast::http::verb::get, "/{device}/" + asset + "?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`"); - m_server->addRouting({boost::beast::http::verb::get, "/{device}/" + asset + "?" + qp, handler}) - .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") - .command(asset); // m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) // .document("MTConnect asset request", "Returns up to `count` assets for deivce `device`"); } @@ -791,7 +792,8 @@ namespace mtconnect { string qp( "path={string}&from={unsigned_integer}&" - "interval={integer}&count={integer:100}&" + //"interval={integer}&count={integer:100}&" + "count={integer:100}&" "heartbeat={integer:10000}&to={unsigned_integer}&" "pretty={bool:false}&" "deviceType={string}&format={string}"); From 5a25952ff57d53dba096b0a9e122f5aae874305a Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Fri, 14 Nov 2025 13:38:31 -0500 Subject: [PATCH 6/9] On branch websocket-test Changes to be committed: modified: ../src/mtconnect/sink/rest_sink/rest_service.cpp modified: ../src/mtconnect/sink/rest_sink/websocket_session.hpp Added code to websocket_session::parseRequest to replace the asset or assets command with assetsById if the values of the assetIds parameter is not empty Added asset route command assetsById to rest_service.hpp --- src/mtconnect/sink/rest_sink/rest_service.cpp | 7 ++----- src/mtconnect/sink/rest_sink/websocket_session.hpp | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index 53133cf94..7c5c7b315 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -581,10 +581,6 @@ namespace mtconnect { m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") .command("assets"); - // m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) - // .document("MTConnect asset request", "Returns up to `count` assets"); - // m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) - // .document("MTConnect asset request", "Returns up to `count` assets for deivce `device`"); } m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) @@ -594,7 +590,8 @@ namespace mtconnect { m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) .document("MTConnect asset request", "Returns a set of assets identified by asset ids `asset` separated by " - "semi-colon (;)"); + "semi-colon (;)") + .command("assetsById"); if (m_server->arePutsAllowed()) { diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index f43a425e2..970ac8170 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -404,6 +404,17 @@ namespace mtconnect::sink::rest_sink { } } + string command = *request->parameter("request"); + + LOG(debug) << "WebsocketSession::parseRequest command: " << command; + LOG(debug) << "WebsocketSession::parseRequest assetIds: " << *request->parameter("assetIds"); + + if ( *request->parameter("assetIds") != "" && ( command == "asset" || command == "assets")) { + request->m_parameters["request"] = "assetsById"; + LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); + } + + return request; } From 75747d597c29d95bd0742d927b600c78af1ce1a7 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Fri, 14 Nov 2025 14:19:42 -0500 Subject: [PATCH 7/9] Cleanded up some of the code. --- src/mtconnect/sink/rest_sink/rest_service.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index 7c5c7b315..961ec143c 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -567,10 +567,8 @@ namespace mtconnect { string qp( "type={string}&removed={bool:false}&" "count={integer:100}&deviceType={string}&pretty={bool:false}&format={string}"); - //for (const auto &asset : list {"asset", "assets"}) - { - m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) + m_server->addRouting({boost::beast::http::verb::get, "/asset?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") @@ -581,13 +579,12 @@ namespace mtconnect { m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") .command("assets"); - } m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) .document( "MTConnect assets request", "Returns a set assets identified by asset ids `asset` separated by semi-colon (;)"); - m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) + m_server->addRouting({boost::beast::http::verb::get, "/asset/{assetIds}", idHandler}) .document("MTConnect asset request", "Returns a set of assets identified by asset ids `asset` separated by " "semi-colon (;)") From 3e49b77c04a85522fe6a89a1cadc11cfbb81d057 Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Fri, 14 Nov 2025 19:02:59 -0500 Subject: [PATCH 8/9] On branch websocket_fixes Changes to be committed: modified: src/mtconnect/sink/rest_sink/rest_service.cpp modified: src/mtconnect/sink/rest_sink/websocket_session.hpp Document code changes for fixes to the websocket routing for assets --- src/mtconnect/sink/rest_sink/rest_service.cpp | 5 +++-- src/mtconnect/sink/rest_sink/websocket_session.hpp | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/rest_service.cpp b/src/mtconnect/sink/rest_sink/rest_service.cpp index c3ecf9671..dea034ed4 100644 --- a/src/mtconnect/sink/rest_sink/rest_service.cpp +++ b/src/mtconnect/sink/rest_sink/rest_service.cpp @@ -572,13 +572,13 @@ namespace mtconnect { .document("MTConnect assets request", "Returns up to `count` assets"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/asset?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") - .command("asset"); + .command("asset"); //Wickelhaus added the asset command for websocket processing. m_server->addRouting({boost::beast::http::verb::get, "/assets?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets"); m_server->addRouting({boost::beast::http::verb::get, "/{device}/assets?" + qp, handler}) .document("MTConnect assets request", "Returns up to `count` assets for deivce `device`") - .command("assets"); + .command("assets"); //Wickelhaus added the assets command for websocket processing. m_server->addRouting({boost::beast::http::verb::get, "/assets/{assetIds}", idHandler}) .document( @@ -589,6 +589,7 @@ namespace mtconnect { "Returns a set of assets identified by asset ids `asset` separated by " "semi-colon (;)") .command("assetsById"); + //Wickelhaus added assetsById command to process the assetIds values for websocket processing. if (m_server->arePutsAllowed()) { diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index 85c2b4307..c4acbadae 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -407,6 +407,8 @@ namespace mtconnect::sink::rest_sink { } } + //Wickelhaus + //Added code to change the command from asset or assets to assetsById when the assetIds parameter has values string command = *request->parameter("request"); LOG(debug) << "WebsocketSession::parseRequest command: " << command; From 462925aa418b9be50e745f53985d3bde1e18e43a Mon Sep 17 00:00:00 2001 From: Dave Wickelhaus Date: Fri, 14 Nov 2025 20:23:56 -0500 Subject: [PATCH 9/9] On branch websocket-test Changes to be committed: modified: ../src/mtconnect/sink/rest_sink/websocket_session.hpp Cleaned out some debugging code. --- src/mtconnect/sink/rest_sink/websocket_session.hpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/mtconnect/sink/rest_sink/websocket_session.hpp b/src/mtconnect/sink/rest_sink/websocket_session.hpp index c4acbadae..c455f6b7d 100644 --- a/src/mtconnect/sink/rest_sink/websocket_session.hpp +++ b/src/mtconnect/sink/rest_sink/websocket_session.hpp @@ -348,7 +348,6 @@ namespace mtconnect::sink::rest_sink { request->m_verb = beast::http::verb::get; request->m_parameters.clear(); - //LOG(debug) << "WebsocketSession::parseRequest after clear assetIds: " << *request->parameter("assetIds"); #ifdef GetObject #define __GOSave__ GetObject #undef GetObject @@ -358,11 +357,8 @@ namespace mtconnect::sink::rest_sink { #ifdef __GOSave__ #define GetObject __GOSave__ #endif - LOG(debug) << "WebsocketSession::parseRequest parse objects"; for (auto &it : object) { - LOG(debug) << "WebsocketSession::parseRequest object name: "<< it.name.GetString(); - switch (it.value.GetType()) { case rapidjson::kNullType: @@ -383,7 +379,6 @@ namespace mtconnect::sink::rest_sink { case rapidjson::kStringType: request->m_parameters.emplace( make_pair(it.name.GetString(), ParameterValue(string(it.value.GetString())))); - LOG(debug) << "WebsocketSession::parseRequest name: "<< it.value.GetString() << ", object value: "<< it.value.GetString(); break; case rapidjson::kNumberType: if (it.value.IsInt()) @@ -410,14 +405,8 @@ namespace mtconnect::sink::rest_sink { //Wickelhaus //Added code to change the command from asset or assets to assetsById when the assetIds parameter has values string command = *request->parameter("request"); - - LOG(debug) << "WebsocketSession::parseRequest command: " << command; - LOG(debug) << "WebsocketSession::parseRequest assetIds: " << *request->parameter("assetIds"); - LOG(debug) << "WebsocketSession::parseRequest interval: " << *request->parameter("interval"); - if ( *request->parameter("assetIds") != "" && ( command == "asset" || command == "assets")) { request->m_parameters["request"] = "assetsById"; - LOG(debug) << "WebsocketSession::parseRequest command: " << *request->parameter("request"); }