diff --git a/pkg/main.go b/pkg/main.go index d0a5210..810896f 100644 --- a/pkg/main.go +++ b/pkg/main.go @@ -57,6 +57,7 @@ func readSub(subscription *pubsub.Subscription, incomingMessagesChan chan pubsub { close(incomingMessagesChan) close(stopChannel) + subscription.Cancel() return } default: @@ -256,7 +257,10 @@ func GetPeersIdentity() { // GetTopics is method for getting subcribed topics of current peer func GetTopics() string { - topics := handler.GetTopics() + var topics []string + for key := range subscribedTopics { + topics = append(topics, key) + } return utils.ObjectToJSON(topics) } @@ -287,6 +291,14 @@ func GetMessages() string { // SubscribeToTopic allows to subscribe to specific topic func SubscribeToTopic(topic string) { + if topic == serviceTopic { + log.Println("Manual subscription to service topic is not allowed!") + return + } + if _, ok := subscribedTopics[topic]; ok { + log.Println("You are already subscribed to the topic!") + return + } incomingMessages := make(chan pubsub.Message) subscription, err := Pb.Subscribe(topic) if err != nil {