diff --git a/server/controlServer.cpp b/server/controlServer.cpp index 2f8a05a7..d240bf12 100644 --- a/server/controlServer.cpp +++ b/server/controlServer.cpp @@ -44,7 +44,7 @@ ControlServer::~ControlServer() } -void ControlServer::send(const std::string& message) +void ControlServer::send(const std::string& message, const ControlSession* excludeSession) { std::unique_lock mlock(mutex_); for (auto it = sessions_.begin(); it != sessions_.end(); ) @@ -63,7 +63,10 @@ void ControlServer::send(const std::string& message) } for (auto s : sessions_) - s->sendAsync(message); + { + if (s.get() != excludeSession) + s->sendAsync(message); + } } diff --git a/server/controlServer.h b/server/controlServer.h index ba8b1215..1b895c29 100644 --- a/server/controlServer.h +++ b/server/controlServer.h @@ -53,7 +53,7 @@ public: void stop(); /// Send a message to all connceted clients - void send(const std::string& message); + void send(const std::string& message, const ControlSession* excludeSession = NULL); /// Clients call this when they receive a message. Implementation of MessageReceiver::onMessageReceived virtual void onMessageReceived(ControlSession* connection, const std::string& message); diff --git a/server/streamServer.cpp b/server/streamServer.cpp index 539be402..77944e8f 100644 --- a/server/streamServer.cpp +++ b/server/streamServer.cpp @@ -196,7 +196,7 @@ void StreamServer::onMessageReceived(ControlSession* controlSession, const std:: Config::instance().save(); json notification = JsonNotification::getJson("Client.OnUpdate", clientInfo->toJson()); - controlServer_->send(notification.dump()); + controlServer_->send(notification.dump(), controlSession); } controlSession->send(request.getResponse(response).dump());