code: func NewService(queueSize ...int) *Service {
  	var qs = 100
  	if len(queueSize) > 0 {
  		qs = queueSize[0]
  	}
  
  	return &Service{
  		state:                       serviceStopped,
  		Session:                     session.NewMemorySession(),
  		MinReconnectDelay:           50 * time.Millisecond,
  		MaxReconnectDelay:           10 * time.Second,
  		ConnectTimeout:              5 * time.Second,
  		DisconnectTimeout:           10 * time.Second,
  		ResubscribeTimeout:          5 * time.Second,
  		ResubscribeAllSubscriptions: true,
  		subscriptions:               topic.NewTree(),
  		commandQueue:                make(chan *command, qs),
  		futureStore:                 future.NewStore(),
  	}
  }
docs: // NewService allocates and returns a new service. The optional parameter queueSize
  // specifies how many Subscribe, Unsubscribe and Publish commands can be queued
  // up before actually sending them on the wire. The default queueSize is 100.