52 incomingMachineMessageQueue,
54 outgoingMachineMessageQueue,
55 uint16_t reqResPort = 63524, uint16_t pubSubPort = 63525);
130 void handleUpgrade(uWS::HttpResponse<false>* res, uWS::HttpRequest* req,
131 us_socket_context_t* context,
132 bool checkDuplicateClientIds =
false);
188 std::atomic<bool> running_ =
false;
191 uint16_t reqResPort_ = 63524;
193 std::thread reqResThread_;
195 std::atomic<uWS::Loop*> reqResLoop_ =
nullptr;
197 std::atomic<us_listen_socket_t*> reqResListenToken_ =
nullptr;
199 std::unordered_map<std::string,
200 uWS::WebSocket<false, true, ProtoServer::ConnectionData>*>
201 reqResConnectionIdToWebSocketMap_;
202 std::mutex reqResConnectionIdToWebSocketMapMutex_;
205 uint16_t pubSubPort_ = 63525;
207 std::thread pubSubThread_;
209 std::atomic<uWS::Loop*> pubSubLoop_ =
nullptr;
211 std::atomic<us_listen_socket_t*> pubSubListenToken_ =
nullptr;
213 std::unordered_map<std::string,
214 uWS::WebSocket<false, true, ProtoServer::ConnectionData>*>
215 pubSubConnectionIdToWebSocketMap_;
216 std::mutex pubSubConnectionIdToWebSocketMapMutex_;
220 incomingMachineMessageQueue_;
223 outgoingMachineMessageQueue_;
226 std::thread serverThread_;
283 void sendOutgoingMachineMessages();
293 std::unordered_map<std::string,
294 std::tuple<std::string, std::set<std::string>>>
295 monitoringSubscriptionMap_;
296 std::mutex monitoringSubscriptionMapMutex_;
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:8