// For UNSUBSCRIBE message, we should remove the subscriber, and send back UNSUBACK func (this *service) processUnsubscribe(msg *message.UnsubscribeMessage) error { topics := msg.Topics() for _, t := range topics { this.topicsMgr.Unsubscribe(t, &this.onpub) this.sess.RemoveTopic(string(t)) } resp := message.NewUnsubackMessage() resp.SetPacketId(msg.PacketId()) _, err := this.writeMessage(resp) return err }