51 incomingMachineMessageQueue,
53 outgoingMachineMessageQueue,
54 uint16_t reqResPort = 63524, uint16_t pubSubPort = 63525);
120 void handleUpgrade(uWS::HttpResponse<false>* res, uWS::HttpRequest* req,
121 us_socket_context_t* context,
122 bool checkDuplicateClientIds =
false);
178 std::atomic<bool> running_ =
false;
181 uint16_t reqResPort_ = 63524;
183 std::thread reqResThread_;
185 uWS::Loop* reqResLoop_ =
nullptr;
187 us_listen_socket_t* reqResListenToken_ =
nullptr;
189 std::unordered_map<std::string,
190 uWS::WebSocket<false, true, ProtoServer::ConnectionData>*>
191 reqResConnectionIdToWebSocketMap_;
194 uint16_t pubSubPort_ = 63525;
196 std::thread pubSubThread_;
198 uWS::Loop* pubSubLoop_ =
nullptr;
200 us_listen_socket_t* pubSubListenToken_ =
nullptr;
202 std::unordered_map<std::string,
203 uWS::WebSocket<false, true, ProtoServer::ConnectionData>*>
204 pubSubConnectionIdToWebSocketMap_;
208 incomingMachineMessageQueue_;
211 outgoingMachineMessageQueue_;
214 std::thread serverThread_;
271 void sendOutgoingMachineMessages();
283 std::unordered_map<std::string,
284 std::tuple<std::string, std::set<std::string>>>
285 monitoringSubscriptionMap_;
ProtoServer(mm::core::containers::ThreadSafeQueue< IncomingMachineMessage > &incomingMachineMessageQueue, mm::core::containers::ThreadSafeQueue< OutgoingMachineMessage > &outgoingMachineMessageQueue, uint16_t reqResPort=63524, uint16_t pubSubPort=63525)
Construct a new ProtoServer object.
Definition proto_server.cc:7