feat: add heartbeat capability
This commit is contained in:
		| @@ -98,6 +98,8 @@ add_executable (rpc | |||||||
|   commands.cpp |   commands.cpp | ||||||
|   activation.h |   activation.h | ||||||
|   activation.cpp |   activation.cpp | ||||||
|  |   heartbeat.h | ||||||
|  |   heartbeat.cpp | ||||||
|   lms.h |   lms.h | ||||||
|   lms.cpp |   lms.cpp | ||||||
|   main.cpp |   main.cpp | ||||||
|   | |||||||
| @@ -8,7 +8,7 @@ | |||||||
|  |  | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
| #define PROTOCOL_VERSION "3.0.0" | #define PROTOCOL_VERSION "4.0.0" | ||||||
|  |  | ||||||
| #ifdef _WIN32 | #ifdef _WIN32 | ||||||
| #define convertstring   to_utf16string | #define convertstring   to_utf16string | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								heartbeat.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								heartbeat.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | |||||||
|  | /********************************************************************* | ||||||
|  | * Copyright (c) Intel Corporation 2019 - 2020 | ||||||
|  | * SPDX-License-Identifier: Apache-2.0 | ||||||
|  | **********************************************************************/ | ||||||
|  |  | ||||||
|  | #include "heartbeat.h" | ||||||
|  | #include <cpprest/ws_client.h> | ||||||
|  | #include <cpprest/json.h> | ||||||
|  | #include <cpprest/streams.h> | ||||||
|  | #include <iostream> | ||||||
|  | #include <string> | ||||||
|  | #include "activation.h" | ||||||
|  | #include "version.h" | ||||||
|  | #include "commands.h" | ||||||
|  | #include "network.h" | ||||||
|  | #include "utils.h" | ||||||
|  |  | ||||||
|  | bool heartbeat_create_response(std::string& response) | ||||||
|  | { | ||||||
|  |     web::json::value msg; | ||||||
|  |  | ||||||
|  |     utility::string_t tmp = utility::conversions::convertstring("heartbeat_response"); | ||||||
|  |     msg[U("method")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     tmp = utility::conversions::convertstring(""); | ||||||
|  |     msg[U("apiKey")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     tmp = utility::conversions::convertstring(PROJECT_VER); | ||||||
|  |     msg[U("appVersion")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     tmp = utility::conversions::convertstring(PROTOCOL_VERSION); | ||||||
|  |     msg[U("protocolVersion")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     tmp = utility::conversions::convertstring("success"); | ||||||
|  |     msg[U("status")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     tmp = utility::conversions::convertstring(""); | ||||||
|  |     msg[U("message")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     // set empty payload | ||||||
|  |     tmp = utility::conversions::convertstring(""); | ||||||
|  |     msg[U("payload")] = web::json::value::string(tmp); | ||||||
|  |  | ||||||
|  |     // serialize the entire message | ||||||
|  |     response = utility::conversions::to_utf8string(msg.serialize()); | ||||||
|  |  | ||||||
|  |     return true; | ||||||
|  | } | ||||||
							
								
								
									
										13
									
								
								heartbeat.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								heartbeat.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | /********************************************************************* | ||||||
|  | * Copyright (c) Intel Corporation 2019 - 2020 | ||||||
|  | * SPDX-License-Identifier: Apache-2.0 | ||||||
|  | **********************************************************************/ | ||||||
|  |  | ||||||
|  | #ifndef __HEARTBEAT_H__ | ||||||
|  | #define __HEARTBEAT_H__ | ||||||
|  |  | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | bool heartbeat_create_response(std::string& response); | ||||||
|  |  | ||||||
|  | #endif  | ||||||
							
								
								
									
										16
									
								
								main.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								main.cpp
									
									
									
									
									
								
							| @@ -11,6 +11,7 @@ | |||||||
| #include "lms.h" | #include "lms.h" | ||||||
| #include "commands.h" | #include "commands.h" | ||||||
| #include "activation.h" | #include "activation.h" | ||||||
|  | #include "heartbeat.h" | ||||||
| #include "utils.h" | #include "utils.h" | ||||||
| #include "usage.h" | #include "usage.h" | ||||||
| #include "args.h" | #include "args.h" | ||||||
| @@ -246,6 +247,21 @@ int main(int argc, char* argv[]) | |||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  |             if (msgMethod.compare("heartbeat_request") == 0) | ||||||
|  |             { | ||||||
|  |                 // create the response | ||||||
|  |                 std::string response; | ||||||
|  |                 if (!heartbeat_create_response(response)) return; | ||||||
|  |  | ||||||
|  |                 // send it | ||||||
|  |                 web::websockets::client::websocket_outgoing_message send_websocket_msg; | ||||||
|  |                 std::string send_websocket_buffer(response); | ||||||
|  |                 send_websocket_msg.set_utf8_message(send_websocket_buffer); | ||||||
|  |                 client.send(send_websocket_msg).wait(); | ||||||
|  |  | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |  | ||||||
|             // process any messages we can |             // process any messages we can | ||||||
|             //   - if success, done |             //   - if success, done | ||||||
|             //   - if error, get out |             //   - if error, get out | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user