diff --git a/include/DirectCommunicationClient.hpp b/include/DirectCommunicationClient.hpp index 80669b9..838999a 100644 --- a/include/DirectCommunicationClient.hpp +++ b/include/DirectCommunicationClient.hpp @@ -38,6 +38,9 @@ namespace DirectCommunication std::thread Worker_; std::atomic_bool stopWorker_; + std::atomic_bool isConnected = true; + + WHISPER::threadSafeQueue receivedMessages_; diff --git a/src/DirectCommunicationClient.cpp b/src/DirectCommunicationClient.cpp index 98f05e5..f59c015 100644 --- a/src/DirectCommunicationClient.cpp +++ b/src/DirectCommunicationClient.cpp @@ -41,7 +41,9 @@ namespace DirectCommunication zmq::message_t zmqMsg(msg.begin(),msg.end()); - socket_.send(zmqMsg,zmq::send_flags::dontwait); + if (isConnected == true) { + socket_.send(zmqMsg,zmq::send_flags::dontwait); + } } @@ -70,7 +72,7 @@ namespace DirectCommunication if (msg.to_string() == "CLOSE") { - + isConnected = false; socket_.disconnect("tcp://"+serverAddress_+":"+std::to_string(port_)); }else