code: func (h *apiExecutor) Disconnect(ctx context.Context, cmd *DisconnectRequest) *DisconnectResponse {
  	defer func(started time.Time) {
  		apiCommandDurationSummary.WithLabelValues(h.protocol, "disconnect").Observe(time.Since(started).Seconds())
  	}(time.Now())
  
  	resp := &DisconnectResponse{}
  
  	user := cmd.User
  	if user == "" {
  		// h.node.Log(centrifuge.NewLogEntry(centrifuge.LogLevelError, "user required for disconnect", map[string]interface{}{}))
  		resp.Error = ErrorBadRequest
  		return resp
  	}
  
  	err := h.node.Disconnect(user, false)
  	if err != nil {
  		// h.node.Log(centrifuge.NewLogEntry(centrifuge.LogLevelError, "error disconnecting user", map[string]interface{}{"user": cmd.User, "error": errError()}))
  		resp.Error = ErrorInternal
  		return resp
  	}
  	return resp
  }
docs: // Disconnect disconnects user by its ID and sends disconnect
  // control message to other nodes so they could also disconnect user.