func (s *Service) Stop(ctx context.Context) error {
	if s.c != nil {
		s.c.Close()
		s.c = nil  
	}
	return nil
}
Stop closes the underlying `nats.Conn`: if everything goes smoothly,
the service is marked as 'stopped'; otherwise, an error is returned.


Stop is used by BandMaster's internal machinery, it shouldn't ever be called
directly by the end-user of the service.
package nats
import (
	"context"
	"errors"
	"github.com/nats-io/go-nats"
	"github.com/znly/bandmaster"
)
type Service struct {
	*bandmaster.ServiceBase  
	opts *nats.Options
	c    *nats.Conn
}
func New(opts *nats.Options) bandmaster.Service {
	return &Service{
		ServiceBase: bandmaster.NewServiceBase(),  
		opts:        opts,
	}
}
func (s *Service) Start(context.Context, map[string]bandmaster.Service) error {
	var err error
	if s.c == nil {  
		s.c, err = s.opts.Connect()
		if err != nil {
			return err
		}
		if s.c.Status() != nats.CONNECTED {
			_ = s.Stop(context.Background())
			return errors.New("nats: connection failure")  
		}
	}
	return nil
}